Compare commits

..

1242 Commits

Author SHA1 Message Date
Nick Brassel
3e1ac7a38f Fixes for encoder abstraction. (#23195) 2024-03-10 22:24:17 +11:00
James Young
be42ea306b KBDfans KBD19x Layout Additions (#23230)
* Add layout/matrix diagram

[docs]

* Re-sort JSON `layouts` object

Moves the `LAYOUT_all` object to be first in sequence.

[refactor]

* Add `LAYOUT_ansi_split_bs`

[enhancement]

* Add `LAYOUT_iso_split_bs`

[enhancement]

* Add `LAYOUT_ansi_wkl_split_bs`

[enhancement]

* Add `LAYOUT_ansi_wkl`

[enhancement]

* Add `LAYOUT_iso_wkl_split_bs`

[enhancement]

* Add `LAYOUT_iso_wkl`

[enhancement]
2024-03-09 23:04:00 -08:00
Nick Brassel
900e79febe Attempt to deal with GCC 13+ and rv32 arch extensions. (#23086) 2024-03-09 21:40:19 +11:00
James Young
fec2323089 Orthograph: correct layout data (#23213)
* correct layout data

Correct the key sizes and positions in the layout data.

[chore]

* remove layout offset

Remove the dead space from the layout data.

[chore]
2024-03-09 01:26:33 +00:00
James Young
a8991722bc Xiudi XD96 Layout Bugfixes and Touch-Up (#23242)
* Correct AliExpress Hardware Availability link in readme

Previous URL linked to a Cospad listing.

[chore]
[docs]

* Convert `info.json` to four-space indent

[style]

* Correct `LAYOUT_all` matrix data

The right half of split Backspace is actually located at [5, 9], not
[5, 3].

[bugfix]

* Correct `LAYOUT_96_iso` matrix data

Corrects the matrix positions of the ISO Hash/Tilde and ISO Enter keys
to [3, 12] and [3, 13], respectively.

[bugfix]

* Add layout/matrix diagram

[docs]

* Refactor keymaps

- remove "inline block" comments
- grid-align keycodes
- use four-space indent

[style]
2024-03-09 01:24:31 +00:00
strayfade
62e2cb9286 [Keyboard] Add sf2040 (#23211)
Co-authored-by: jack <0x6a73@protonmail.com>
2024-03-08 11:44:32 -08:00
David Hoelscher
113d3d6001 [Keyboard] Add CMK11 (#23239)
* adding cmk11

* correcting default keymap

* removing rules.mk

* removing unnecessary comment
2024-03-08 08:40:32 -07:00
Nick Brassel
8946aace5b Add instructions for debugging ARM with VSCode+BMP. (#11217) 2024-03-08 22:24:11 +11:00
takashicompany
0a03fc512c [Keyboard] Add Ejectix (#23204)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-03-08 02:51:37 -08:00
Cipulot
30b0600ea2 [Keyboard] Add 60XT (#23210)
Co-authored-by: jack <0x6a73@protonmail.com>
2024-03-08 02:51:00 -08:00
Joel Challis
4443fa8a32 Attempt to fix changed files on CI workflow (#23205) 2024-03-05 16:59:09 +00:00
dependabot[bot]
7836906f3e Bump peter-evans/create-pull-request from 5 to 6 (#22995)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-05 22:48:25 +11:00
James Young
9ae4d01e33 Iron180 V2 H: correct key sizes (#23214) 2024-03-04 19:42:37 +00:00
James Young
73bddf0ea6 mntre_v3: correct layout data (#23216) 2024-03-04 19:41:55 +00:00
James Young
1919644934 Iron180 V2 S: correct ANSI Enter key sizes (#23215) 2024-03-04 19:40:16 +00:00
Joel Challis
092ef661af Workaround for uart makefile issues (#23192) 2024-03-02 18:20:18 +00:00
Nick Brassel
21276de7d5 Normalise .editorconfig. (#23186) 2024-03-02 23:23:34 +11:00
Joel Challis
c060876692 Remove cd suggestion from new-keyboard (#23194) 2024-03-02 23:23:25 +11:00
Nick Brassel
1875659df0 CLI Speed improvements. (#23189) 2024-03-02 08:45:01 +11:00
Nick Brassel
8b8f73098b Fix up AVR production build target. (#23190) 2024-03-02 08:44:51 +11:00
blindassassin111
3b76a3a323 Fixing typos for OSAv2 and OSAv2_Topre (#23161)
Correcting tilde to grave, fixing a typo in ec.c, and removing some comments that were accidentally left in.
2024-03-01 18:03:56 +00:00
Moritz Plattner
012b101b2e geistmaschine/geist: enable mousekey, fix issues in default/via keymap (#23187) 2024-03-01 09:18:19 -07:00
Nick Brassel
4e369d405a Merge branch 'develop' 2024-02-28 21:47:37 +11:00
Nick Brassel
dd1706e468 Merge point for 2024q1 Breaking Change 2024-02-28 21:46:31 +11:00
Nick Brassel
dc046bc215 2024q1 develop changelog. (#23150) 2024-02-28 21:39:19 +11:00
Ryan
29891b63f9 Update Atmel DFU driver assignments for dfu-programmer 1.x (#23165) 2024-02-28 21:03:43 +11:00
Joel Challis
51cfd7554a Merge upstream uf2conv.py changes (#23163) 2024-02-28 20:29:00 +11:00
Joel Challis
b3462157dc Satisfaction75 post merge updates (#23158) 2024-02-27 12:48:11 +00:00
Nick Brassel
bafbca3604 Ensmallification of helix/rev3_5rows:via. (#23159) 2024-02-27 12:45:46 +11:00
Andrew Kannan
490641307a Cleanup Satisfaction75 Firmware and add new revisions (#22082)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2024-02-27 09:16:00 +11:00
Cipulot
0f701c7dbe cipulot/common: Fix for multiple AMUX usage (#23155) 2024-02-26 13:38:52 +00:00
Cipulot
ed791972e1 Cipulot refactoring (#22368)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2024-02-26 13:05:10 +11:00
Sergey Vlasov
34a113c97b Nix shell updates (Nixpkgs 2024-02-23, QMK CLI 1.1.5) (#23143) 2024-02-26 13:04:27 +11:00
Ryan
65a04ead32 LED drivers: update keyboard LED configs (#23073)
* IS31FL3733: update keyboard LED config

* IS31FL3736: update keyboard LED config

* IS31FL3737: update keyboard LED config

* IS31FL3741: update keyboard LED config

* IS31FL3743A: update keyboard LED config

* AW20216S: update keyboard LED config

* SNLED27351: update keyboard LED config
2024-02-25 21:29:37 +00:00
Ryan
14d1d9639c Add LED/RGB Matrix drivers to info.json schema (#23127) 2024-02-25 21:29:25 +00:00
Nick Brassel
56802f506c Ensure qmk generate-compilation-database copies to userspace as well. (#23129) 2024-02-22 12:47:42 +00:00
Ryan
c6668b9cd9 Migrate RGBLED_NUM -> RGBLIGHT_LED_COUNT in remaining non-user keymaps (#23128) 2024-02-22 10:10:16 +00:00
Ryan
c371cb3bc4 IS31FL3729 updates (#23109) 2024-02-22 17:51:49 +11:00
QMK Bot
b25d4f62c1 Merge remote-tracking branch 'origin/master' into develop 2024-02-21 22:36:08 +00:00
Logan Foster
4e04da397e [Keyboard] Add the Compensator (#23103)
* Pushed up compensator start

* Addressed Firmware Changes

* Fixed some keybind issues

* Updated readMe

* Added keymap

* Adjustments for PR

* adjusted on-state

* Applied sugguested changes

* Addressed PR changes

* Addressed macro comments

* Addressed layer comments
2024-02-21 15:35:39 -07:00
Joel Challis
b26e5c585b Manual user keymap removal (#23119) 2024-02-20 22:22:00 +00:00
jack
b7b00d58b8 Fixup inett_studio/sq80 (#23121) 2024-02-20 17:04:04 +00:00
Stefan Kerkmann
61fa6949fb [Core] Allow ChibiOS SIO driver for UART driver (#22839)
* onekey: stm32f3_disco: add usart pins and activate peripheral

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>

* chibios: uart: change SD1 prefix to UART

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>

* chibios: uart: add SIO driver and RP2040 compatibility

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

* Update platforms/chibios/drivers/uart.h

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

---------

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2024-02-20 11:34:24 +01:00
Ryan
865a8f42a6 WS2812 bitbang: prefix for NOP_FUDGE define (#23110) 2024-02-20 21:13:18 +11:00
QMK Bot
e198643d66 Merge remote-tracking branch 'origin/master' into develop 2024-02-20 00:45:57 +00:00
Nick Brassel
7df44ffb75 Fix double code indenting (#23117) 2024-02-20 00:45:25 +00:00
Drashna Jaelre
66780783c7 [Bug] Fix pmw33xx sensor corruption on get-cpi call (#23116) 2024-02-20 11:36:28 +11:00
QMK Bot
6efb71d401 Merge remote-tracking branch 'origin/master' into develop 2024-02-19 21:51:32 +00:00
VertorWang
672986a078 [Keyboard] Add moky88 (#22954)
* Update

* 代码对齐

* 修改键盘名称

* 增加Readme

* Add copyright notice

* Update keyboards/moky/moky88/info.json

Delete solid_color

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

* Update keyboards/moky/moky88/info.json

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

* Update keyboards/moky/moky88/moky88.c

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

* Update keyboards/moky/moky88/info.json

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

* Update keyboards/moky/moky88/info.json

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

* Update keyboards/moky/moky88/config.h

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

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

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

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

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

* Update keyboards/moky/moky88/info.json

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

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

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

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

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

* Update keyboards/moky/moky88/config.h

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

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

* delete maintainer

* add default/rules.mk

* Update readme.md

* Update readme.md

---------

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

I decided to go with the name `sq80` to stay in line with the existing
`sqx`, and "SQ80" has been used in some of the communication from the
creators.
2024-02-19 14:48:17 -07:00
Joel Challis
2f3383a11e Fix make clean test:os_detection (#23112) 2024-02-19 19:48:59 +00:00
Joel Challis
9f95577ef2 OS Detection - Entire file should not be wrapped with ifdef (#23108) 2024-02-19 15:37:51 +00:00
rookiebwoy
8df2e70ae4 Late9 keymaps update, added VIA support (#22801) 2024-02-19 11:23:33 +00:00
フィルターペーパー
bc7d1cc397 Refactor: group kbdfans keyboards (#22764)
Move two kbdfans keyboard into kbdfans folder
2024-02-19 11:18:20 +00:00
Joel Challis
e26e12402b Manual user keymap removal (#23104) 2024-02-19 09:48:06 +00:00
jack
db1df185c9 Fixup boardsource/equals (#23106)
* initial

* reorder headers
2024-02-18 23:01:25 -07:00
Nick Brassel
9d9cdaaa2d Add encoder abstraction. (#21548) 2024-02-18 21:17:15 +11:00
Joel Challis
2eb9ff8efd Remove obvious user keymaps, keyboards/{i,j,k}* edition (#23102) 2024-02-18 08:20:57 +00:00
Ryan
2d1aed78a6 Update GPIO macro usages in core (#23093) 2024-02-18 17:08:27 +11:00
Pablo Martínez
6810aaf013 [Refactor] qmk find (#21096) 2024-02-17 12:28:40 +00:00
Joel Challis
e2dbe39b94 Removal of bootmagic lite terminology (#22979) 2024-02-17 12:27:34 +00:00
Pablo Martínez
5383335717 [Driver] ILI9486 on Quantum Painter (#18521)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2024-02-17 18:36:05 +11:00
QMK Bot
39627c7620 Merge remote-tracking branch 'origin/master' into develop 2024-02-16 23:35:41 +00:00
chalex
496d093fc3 [Keyboard] Add chlx ppr merro (#23014)
* add ppr files

* update readme

* update imgur link

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

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

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

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

* Update keyboards/chlx/ppr_merro60/readme.md

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

* Update keyboards/chlx/ppr_merro60/readme.md

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

* Update keyboards/chlx/ppr_merro60/rules.mk

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

* Update keyboards/chlx/ppr_merro60/info.json

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

* Update keyboards/chlx/ppr_merro60/info.json

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

* Update keyboards/chlx/ppr_merro60/info.json

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

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

* Update keyboards/chlx/ppr_merro60/readme.md

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

* remove 60_ansi_split_bs_rshift from list of avail layouts

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

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

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

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

* Update keyboards/chlx/ppr_merro60/readme.md

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

* Update keyboards/chlx/ppr_merro60/info.json

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

* Update keyboards/chlx/ppr_merro60/info.json

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

* Update keyboards/chlx/ppr_merro60/info.json

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

* add ansi variants

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

* Apply suggestions from code review

---------

Co-authored-by: chalex <alejandrelee+magbogbro@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2024-02-16 16:35:10 -07:00
QMK Bot
f6dc3569bc Merge remote-tracking branch 'origin/master' into develop 2024-02-16 23:23:31 +00:00
Aeonstrife
83a3357e74 [Keyboard] Added MW60 (#22505)
* Init files

* Update keyboards/buildakb/mw60/readme.md

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

* Update keyboards/buildakb/mw60/readme.md

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

* fixed stuff

* Update readme

* Update keyboards/buildakb/mw60/rules.mk

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

* Update keyboards/buildakb/mw60/info.json

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

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

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

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

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

* Update keyboards/buildakb/mw60/info.json

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

* formatted info.json, removed config.h

* Update keyboards/buildakb/mw60/info.json

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

* Update keyboards/buildakb/mw60/info.json

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

* Update keyboards/buildakb/mw60/info.json

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

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

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

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

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

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

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

* formatted info.json

---------

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-02-16 16:23:00 -07:00
jack
560df40c4d Fixup kbd67/rev1 (#23096) 2024-02-16 16:12:51 -07:00
jack
07aee9af0e Fiuxup takashicompany/heavy_left (#23094)
* initial

* revert ee_hands
2024-02-16 10:22:48 -07:00
jack
ba4c8238cb Fixup sawnsprojects/krush60 (#23095) 2024-02-16 10:22:36 -07:00
HorrorTroll
f6709e65eb Add RGB matrix & LED Matrix support for IS31FL3729 (#21944)
Co-authored-by: Xelus22 <preyas22@gmail.com>
Co-authored-by: dexter93 <d3xter93@gmail.com>
2024-02-17 01:41:35 +11:00
Pablo Martínez
9b0b3d7b25 [Enhancement] Prepare for SyntaxWarning (#22562) 2024-02-16 14:34:43 +00:00
Andre Brait
80f3da36e5 [Core] Add OS detection callbacks (#21777) 2024-02-17 01:19:02 +11:00
Joel Challis
77e8867498 Fix joystick initialization (#22953) 2024-02-17 01:14:46 +11:00
Skyler Hawthorne
13434fc066 Insert delay between shifted chars in send_string_with_delay (#19280) 2024-02-17 01:01:01 +11:00
Pablo Martínez
3a0f11a661 [QP] Native palette support for fonts (#20645)
Co-authored-by: Joel Challis <git@zvecr.com>
2024-02-17 00:58:00 +11:00
Pablo Martínez
cf162f90fe [Refactor] Break QGFImageFile's _save function into smaller pieces (#21124) 2024-02-16 13:40:21 +00:00
Joel Challis
78a74ca974 [Keymap Removal] keyboard with most keymaps (#23092) 2024-02-16 13:25:44 +00:00
Ryan
b8646bc40b Update naming convention for GPIO control macros (#23085) 2024-02-17 00:18:26 +11:00
Joel Challis
6890c1aeb8 Workaround for make test:all DEBUG=1 (#23047) 2024-02-16 09:54:09 +00:00
Joel Challis
5233a62b20 Remove obvious user keymaps, keyboards/{s,t}* edition. (#23084) 2024-02-15 09:42:01 +00:00
Joel Challis
f8123c27ad Remove obvious user keymaps, keyboards/{v,x,y,z}* edition. (#23083) 2024-02-15 09:14:06 +00:00
Joel Challis
4a128c6062 [Keymap Removal] keyboard with most keymaps (#23081)
* splitkb/kyria

* lily58

* gmmk/pro/rev1/ansi

* lets_split
2024-02-15 08:23:23 +00:00
Ryan
a9f1105f98 LED drivers: add support for shutdown pin (#23058)
* LED drivers: add support for shutdown pin

* Update candidate boards
2024-02-15 07:11:50 +00:00
Ryan
0b7df03ab7 AW20216S: combine EN pin defines (#23067) 2024-02-15 07:05:08 +00:00
QMK Bot
75c6afaa7f Merge remote-tracking branch 'origin/master' into develop 2024-02-14 21:52:19 +00:00
c0ldbru
b7b14678b2 [Keyboard] Add rot13labs rotc0n macropad (#23028)
* asdds rot13labs rotc0n macropad

* Update keyboards/rot13labs/rotc0n/info.json

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

* Delete keyboards/rot13labs/rotc0n/config.h

removing config.h

* Update keyboards/rot13labs/rotc0n/readme.md

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

---------

Co-authored-by: c0ldbru <c0ldbrusec@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-02-14 14:51:50 -07:00
QMK Bot
32efd14186 Merge remote-tracking branch 'origin/master' into develop 2024-02-14 18:31:49 +00:00
spacehangover
1e7c2a8926 Added SoyuzXL Macropad (#23075)
* added mercury macropad WWA

* Revert "added mercury macropad WWA"

This reverts commit 81b48185d3.

* added Mercury macropad WWA

* added Soyuz Macropad

* Added Soyuz XL Macropad
2024-02-14 11:31:19 -07:00
Joel Challis
4a64d47f12 Migrate WEAR_LEVELING_* to info.json (#23077) 2024-02-14 08:54:24 +00:00
QMK Bot
50c5403612 Merge remote-tracking branch 'origin/master' into develop 2024-02-14 02:20:35 +00:00
spacehangover
1ddff6e30d Added Soyuz Macropad WWA (#23072)
* added mercury macropad WWA

* Revert "added mercury macropad WWA"

This reverts commit 81b48185d3.

* added Mercury macropad WWA

* added Soyuz Macropad
2024-02-13 19:20:04 -07:00
Derek
51a1e3d58d Update vid, pid, and add via keymap (#23063) 2024-02-14 02:03:50 +00:00
Joel Challis
ff884d8968 Remove invalid keyboard level features (#23074) 2024-02-14 01:58:24 +00:00
Joel Challis
7be40fd143 Migrate RGB Matrix config to info.json (#23000) 2024-02-14 00:55:39 +00:00
Joel Challis
974e98ce59 Migrate RGB Matrix config to info.json (#22998) 2024-02-14 00:54:14 +00:00
Ryan
c8c55e3220 is31fl3741: split PWM and scaling buffers (#23049) 2024-02-14 11:16:27 +11:00
QMK Bot
2ddf8635c8 Merge remote-tracking branch 'origin/master' into develop 2024-02-14 00:04:40 +00:00
spacehangover
c4414af9f3 [Keyboard] Add Mercury Macropad (#23071)
* added mercury macropad WWA

* Revert "added mercury macropad WWA"

This reverts commit 81b48185d3.

* added Mercury macropad WWA
2024-02-13 17:04:05 -07:00
QMK Bot
97640efdbe Merge remote-tracking branch 'origin/master' into develop 2024-02-13 21:40:31 +00:00
yiancar
c5a75eb16f [Keyboard] Add Artifact LvL 1 HS (#22964)
* initial commit lvl1

* Add APM32 option

* update stuff:)

* White

* Update to yaml

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

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

* Update info.json

* Update info.json

Ups...

* Update mcuconf.h

* Update halconf.h

* Update info.json

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

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

---------

Co-authored-by: yiancar <yiancar@gmail.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-02-13 14:40:01 -07:00
フィルターペーパー
0cad5e9d4a Refactor: move p3d keyboards (#22763)
Group standalone p3dstore keyboards into p3d folder
2024-02-12 16:37:17 -07:00
Joel Challis
98a68b68a4 Fix git-submodule running in wrong location (#23059) 2024-02-12 10:02:44 +00:00
QMK Bot
cd69ca6527 Merge remote-tracking branch 'origin/master' into develop 2024-02-12 08:50:27 +00:00
azhizhinov
23d21c85fe El Cantor HS. Update info.json (#23020)
Fix for wrong key's placement.
2024-02-12 01:49:58 -07:00
Ryan
3ba88f7798 LED drivers: update PWM register defines for g_<driver>_leds (#23052) 2024-02-12 02:19:45 +00:00
QMK Bot
3e5f5bda4a Merge remote-tracking branch 'origin/master' into develop 2024-02-12 01:26:49 +00:00
Steven Karrmann
cfe8c4dee3 Add Sha keyboard (#22664)
* Implement Sha keyboard with default layout

* Adjust readme and info.json per PR checklist

* Fix RGB Light description in default keymap readme

* Update keyboards/sha/rules.mk

Move configuration to info.json

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

* Update keyboards/sha/info.json

Move configuration to info.json

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

* Update keyboards/sha/info.json

Move configuration to info.json

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

* Update keyboards/sha/info.json

Define RGB animations in info.json

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

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

---------

Co-authored-by: Joel Challis <git@zvecr.com>
2024-02-11 18:26:22 -07:00
Joel Challis
72ce2655aa Fix unit test execution (#23048) 2024-02-12 01:19:40 +00:00
フィルターペーパー
5c5ddeba40 [unicorne] Add a layout alias (#23056)
Add a `LAYOUT` alias to support copying of keymaps from crkbd
2024-02-12 01:03:24 +00:00
Ryan
66015f1645 LED drivers: create structs to hold PWM/scaling buffers (#22955) 2024-02-10 18:48:13 +11:00
Ryan
a5ea619139 LED drivers: place I2C addresses into an array (#22975) 2024-02-09 22:37:18 +11:00
Joel Challis
137938b67a Migrate dip switch config to info.json - keychron (#23037) 2024-02-09 06:56:13 +00:00
Joel Challis
e7b84e1cf6 Flag invalid keyboard features during lint (#22832) 2024-02-08 06:34:48 +00:00
Tom Barnes
ffc45ac80c Remove ee_hands config from ferris/sweep firmware (#23029) 2024-02-06 16:25:15 -08:00
QMK Bot
3f6e362b8d Merge remote-tracking branch 'origin/master' into develop 2024-02-06 07:09:53 +00:00
Ryan
45ae4dec4d WS2812: Better error message when trying to use bitbang driver on RP2040 (#23025) 2024-02-06 08:09:22 +01:00
Joel Challis
93f20e012e Workaround for G431 eeprom emulation (#23002) 2024-02-03 19:09:18 +00:00
QMK Bot
16800ea8a5 Merge remote-tracking branch 'origin/master' into develop 2024-02-03 16:17:37 +00:00
Apricity-Projects
fa2fb9bbe0 KK65 VID Correction (#23007) 2024-02-03 16:17:07 +00:00
Drashna Jael're
11c631027c Merge remote-tracking branch 'origin/master' into develop 2024-02-03 00:50:11 -08:00
gkeyboard
e97ec68692 Add GreatPad macropad under gkeyboard (#22696)
* Add GreatPad under gkeyboard

Add GreatPad macropad

* Update keyboards/gkeyboard/greatpad/config.h

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

* Update keyboards/gkeyboard/greatpad/greatpad.c

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

* Update keyboards/gkeyboard/greatpad/info.json

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

* Update keyboards/gkeyboard/greatpad/info.json

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

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

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

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

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

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

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

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

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

* Add a license header

 Add a license header to glcdfont.c

* Update glcdfont.c

* delete file

* Revert "delete file"

This reverts commit 388e6f03e4.

* Update keyboards/gkeyboard/greatpad/mcuconf.h

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

* Update .vscode/settings.json

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

* Update keyboards/gkeyboard/greatpad/readme.md

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

* Enable encoder

Enable encoder in file info.json

* Update keyboards/gkeyboard/greatpad/greatpad.c

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

* Update info.json

Run qmk format-json -i file info.json

---------

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

* Apply suggestions from code review (Added community layouts)

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

* fix linting

* formatted json

---------

Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-02-02 08:37:03 -07:00
Joe Scotto
06ed8dd14f Add ScottoDeck handwired macropad (#22935)
Co-authored-by: Joel Challis <git@zvecr.com>
2024-02-01 11:05:12 -08:00
Álvaro A. Volpato
20886529c5 Add Valhalla v2 PCB support (#22914)
Co-authored-by: jack <0x6a73@protonmail.com>
2024-02-01 11:04:59 -08:00
Joel Challis
2f37a7854d Migrate lighting defaults to info.json (#22920) 2024-02-01 18:10:14 +00:00
Aidan Smith
7d5b4adc50 Fix Issue with RGB Matrix not understanding the split keyboard (#22997) 2024-02-01 17:12:37 +00:00
Joel Challis
3a13c2120a Ensure LTO is enabled as a info.json build config option (#22932)
* feature.lto -> build.lto

* keymaps too
2024-02-01 15:45:58 +00:00
Joel Challis
79020519b4 Align VUSB suspend protocol logic (#22688) 2024-02-01 15:33:57 +00:00
Joel Challis
6761936fcd Migrate RGB Matrix config to info.json - K (#22911) 2024-02-01 12:05:29 +00:00
Joel Challis
3dee67a05a Remove redundant steno eeconfig init (#22680) 2024-02-01 11:58:30 +00:00
jack
98f0c5ee24 Fixup doio/kb16 (#22921) 2024-02-01 11:56:05 +00:00
Josh Hinnebusch
c390292e1c H87g2 updates (#22819)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-01-31 23:46:55 -08:00
adophoxia
382c3bd0bd Add Doio KB04 (#22754)
Co-authored-by: Joel Challis <git@zvecr.com>
2024-01-31 23:46:08 -08:00
txdyqiang
276130bdef Theone keyboard (#22749)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2024-01-31 23:28:39 -08:00
Habib
5c84d935f9 [Keyboard] Add mntre_v3 (#22739) 2024-01-31 23:26:05 -08:00
Duncan Sutherland
6fed854e58 add ISO layouts for alfredlabs/swift65/solder (#22672) 2024-01-31 23:15:45 -08:00
adophoxia
9ac6eeaaa6 [Keyboard] Update Keychron Q9 (#22579)
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-01-31 22:11:47 -08:00
adophoxia
a0bc47fcd2 [Keyboard] Update Keychron Q7 (#22577)
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-01-31 22:11:32 -08:00
adophoxia
252f01f2e7 [Keyboard] Update Keychron Q5 (#22575)
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-01-31 22:11:01 -08:00
Duncan Sutherland
997f04b636 add matrix diagram for hineybush/h101 (#22252) 2024-01-31 18:23:02 -08:00
Ben
33a3cd26ab [Keyboard] Add Kimiko Rev2 (#21719)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Ex3c4Def <Joe_No@gmx.net>
Co-authored-by: Ben Roe <ben@MacBookzPro-M2.lan>
Co-authored-by: Ben Roe <ben@MacBook-Pro-von-Ben.local>
2024-01-31 18:21:59 -08:00
QMK Bot
9098cdd376 Merge remote-tracking branch 'origin/master' into develop 2024-02-01 01:57:56 +00:00
mechlovin
f3d3b16ebb [Keyboard] Add Zed1800 platform PCB (#19250)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-01-31 17:57:46 -08:00
Nostril
7ebeb5d93f [Keyboard] Add Synth Labs 065 Keyboard (#21040)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2024-01-31 17:57:21 -08:00
QMK Bot
c9b26a786c Merge remote-tracking branch 'origin/master' into develop 2024-01-31 15:01:52 +00:00
Vino Rodrigues
d8cda43d14 [Keyboard] Add BINEPAD BNK9 (#22831) 2024-01-31 15:01:22 +00:00
Joel Challis
bfcf3c139d Remove always enabled effects from lighting animation list (#22992)
* Remove 'solid_color' from animation list

* Remove 'solid'/'none' from animation list
2024-01-31 10:03:24 +00:00
QMK Bot
22194a4014 Merge remote-tracking branch 'origin/master' into develop 2024-01-31 07:21:04 +00:00
yuezp
777a6e0e58 [Keyboard] Add rena (#22902)
* Added keyboard rena

* format file info.json

* modify info.json file

* modify 16mhz to 8mhz

* modify info.json file

* Delete redundant Spaces

* Delete redundant Spaces

* Delete redundant Spaces

* Delete redundant Spaces

---------

Co-authored-by: “yuezp” <“yuezpchn@126.com”>
2024-01-31 00:20:32 -07:00
SmollChungus
2f58eed8f9 Add FS streampad (#22991)
Co-authored-by: jack <0x6a73@protonmail.com>
2024-01-30 19:35:26 -08:00
QMK Bot
f2684dcfc1 Merge remote-tracking branch 'origin/master' into develop 2024-01-31 03:34:49 +00:00
フィルターペーパー
0a6a203fb5 Update asymmetric debounce code comment (#22981) 2024-01-30 19:34:45 -08:00
Wilba
18f8e51cb7 Added WT65-H2 (Bauer Lite) (#22885) 2024-01-30 19:34:20 -08:00
Drashna Jaelre
b910b1261d Init pins for Analog Joystick sensor (#22985) 2024-01-30 23:20:30 +00:00
QMK Bot
5a4531427d Merge remote-tracking branch 'origin/master' into develop 2024-01-30 20:20:55 +00:00
Apricity-Projects
a4b124e906 [Keyboard] Add KK65 (#22772)
* adding my keyboard

* Update keyboards/kk/65/info.json

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

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

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

* Update keyboards/kk/65/info.json

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

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

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

* Update keyboards/kk/65/rules.mk

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

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

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

* Added photo imgur photo link to readme.md

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

* Update keyboards/kk/65/readme.md

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

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

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

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

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

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

---------

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-01-30 13:20:24 -07:00
Fabien Fellay
734c7afa7d Add missing rgb matrix default parameters (#22281) 2024-01-30 14:56:32 +11:00
Aidan Smith
ca7b2d63a7 Sango Keyboard (#22971)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2024-01-29 12:08:13 -08:00
QMK Bot
0a50599544 Merge remote-tracking branch 'origin/master' into develop 2024-01-29 19:28:59 +00:00
フィルターペーパー
567f808ea5 [Doc] Use number indexes for encoder code example (#22980) 2024-01-29 19:28:23 +00:00
Joel Challis
5cd31fda9c Begin removal of bootmagic lite terminology (#22970) 2024-01-28 22:51:58 +00:00
Joel Challis
bb71145632 Tidy up print/debug logging headers (#22969) 2024-01-27 04:30:29 +00:00
burkfers
f2299ee5f8 Azoteq driver: Remove call to removed i2c function (#22966) 2024-01-26 20:20:04 +01:00
Joel Challis
a632593769 Migrate and remove deprecated debug utils (#22961) 2024-01-26 16:32:06 +00:00
Ryan
728aa576b0 LED drivers: update I2C API usage (#22951) 2024-01-24 12:11:41 +11:00
Ryan
d96ac7084e LED drivers: remove write_pwm_buffer() from public API (#22884) 2024-01-24 09:18:44 +11:00
jack
e446366326 Fixup sofle (#22934)
* initial

* Update keyboards/sofle/info.json

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

* Update keyboards/sofle/info.json

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

---------

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-01-23 13:51:31 +00:00
Dasky
2c3d0126ba crique zidle fix (#22948) 2024-01-23 10:05:59 +00:00
QMK Bot
e46285b928 Merge remote-tracking branch 'origin/master' into develop 2024-01-23 10:02:34 +00:00
Joel Challis
b7468f4785 Workaround for dfu-programmer on Fedora 39 (#22945) 2024-01-23 10:02:03 +00:00
Less/Rikki
a62fefe84b refactor (keyboard): quokka (#22942)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2024-01-22 18:28:22 -08:00
QMK Bot
61ed48edc3 Merge remote-tracking branch 'origin/master' into develop 2024-01-22 13:18:51 +00:00
Ryan
3495cbc638 Fix missing joystick.h include (#22946) 2024-01-22 13:18:20 +00:00
QMK Bot
2655ce58f9 Merge remote-tracking branch 'origin/master' into develop 2024-01-22 11:36:23 +00:00
kopibeng
cdbfcb6c14 Add lock indicators for KLC x TGR LENA (#22931) 2024-01-22 11:36:05 +00:00
Joel Challis
58721a433b Move layout macro OOB checks to lint (#22610) 2024-01-22 11:35:51 +00:00
QMK Bot
548983abc8 Merge remote-tracking branch 'origin/master' into develop 2024-01-20 19:47:19 +00:00
Tommi Pääkkö
1522695cef Add VIA support for Atreus62 (#22913)
Co-authored-by: Tommi Pääkkö <tommi.paakko@symbio.com>
2024-01-20 11:46:52 -08:00
QMK Bot
a213085640 Merge remote-tracking branch 'origin/master' into develop 2024-01-20 19:43:34 +00:00
Danny
a31707fdc2 Add Iris CE Rev. 1 (#22930)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2024-01-20 11:43:04 -08:00
QMK Bot
a9e9a533aa Merge remote-tracking branch 'origin/master' into develop 2024-01-19 21:12:23 +00:00
Nick Brassel
62d19fc2ac Copy compile_commands.json to userspace, if in use. (#22925) 2024-01-20 08:11:17 +11:00
jack
f6a70e45c2 Fixup takashicompany/minizone (#22922)
* initial

* remove bootloader
2024-01-18 22:01:43 -07:00
Joel Challis
d7727a54bc Remove LAYOUTS_HAS_RGB (#22917) 2024-01-18 23:07:54 +00:00
QMK Bot
9ddb6a56bd Merge remote-tracking branch 'origin/master' into develop 2024-01-18 20:16:19 +00:00
dependabot[bot]
c38fdfec9c Bump tj-actions/changed-files from 41 to 42 (#22915)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 41 to 42.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](https://github.com/tj-actions/changed-files/compare/v41...v42)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-18 20:15:48 +00:00
David Hoelscher
e9bd7d7ad3 I2C driver cleanup (#21273)
* remove i2c_start and i2c_stop from i2c drivers

* remove static i2c_address variable from chibios i2c driver
2024-01-17 14:05:38 +01:00
Ryan
2b0965944d qmk format-json: Force Unix line endings and ensure LF at EOF (#22901) 2024-01-16 17:13:58 +11:00
Ryan
a522b1f156 i2c: rename read/write register functions (#22905) 2024-01-16 02:26:40 +00:00
Joel Challis
e1f59a6efc Migrate RGB Matrix config to info.json - TUVW (#22910) 2024-01-16 01:16:31 +00:00
Joel Challis
e30d0e5287 Migrate RGB Matrix config to info.json - M (#22908) 2024-01-16 01:04:09 +00:00
Joel Challis
a90b45e832 Migrate RGB Matrix config to info.json - RS (#22909) 2024-01-16 01:03:55 +00:00
mechlovin
de6ae3408c [Keyboard] Add Olly JF Rev.2 (#21775)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-01-14 11:31:41 -08:00
Ryan
1bebaa310a CLI: Allow generation of both LED and RGB Matrix config (#22896) 2024-01-14 10:33:58 +00:00
QMK Bot
e2517ff9a4 Merge remote-tracking branch 'origin/master' into develop 2024-01-14 06:08:32 +00:00
James Gzowski
dcc47ea31b Add Proteus67 keyboard (#22439)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-01-13 22:07:59 -08:00
QMK Bot
265d4a78dd Merge remote-tracking branch 'origin/master' into develop 2024-01-14 06:07:05 +00:00
Joy Lee
a81ae7dd04 Add tac-k1 keyboard (#22522)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2024-01-13 22:06:37 -08:00
QMK Bot
4775e02794 Merge remote-tracking branch 'origin/master' into develop 2024-01-14 03:16:38 +00:00
Jesse Leventhal
114a43e1ea Add The Mad Noodle Udon13 (#22704)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2024-01-13 19:16:11 -08:00
QMK Bot
9aaaa71aef Merge remote-tracking branch 'origin/master' into develop 2024-01-14 03:10:54 +00:00
Vertex-kb
33c5a64b5a add Cycle8 (#22734)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-01-13 19:10:26 -08:00
Drashna Jaelre
6e1e62936e [Keyboard] Fix typo in Redox config (#22899) 2024-01-13 22:31:04 +00:00
Ryan
eb7ecae4b4 LED drivers: remove PWM register offsets (#22897) 2024-01-13 19:21:15 +00:00
mechlovin
db8c254d3d [Keyboard] Zed65/no_backlight/cor65 correct data layout (#22898) 2024-01-13 19:16:54 +00:00
JohSchneider
6b52c6d83d Cirque reachable calibration aide (#22803)
Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
Co-authored-by: Johannes <you@example.com>
2024-01-13 00:28:09 -08:00
QMK Bot
b659ef8278 Merge remote-tracking branch 'origin/master' into develop 2024-01-13 07:37:45 +00:00
Wilba
624d0964c1 Added WT20-H1 (HIBI JUNIOR) (#22893) 2024-01-12 23:37:10 -08:00
QMK Bot
fbb35fc257 Merge remote-tracking branch 'origin/master' into develop 2024-01-13 07:22:48 +00:00
Duncan Sutherland
bea97291dc Remove community layout from mode/m80*/m80*h (#22461) 2024-01-12 23:22:15 -08:00
QMK Bot
3ae7015433 Merge remote-tracking branch 'origin/master' into develop 2024-01-13 07:14:13 +00:00
ziptyze
f401649855 add lets split v3 (#22465)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-01-12 23:13:45 -08:00
Duncan Sutherland
b1ea30ca7c Move redox_w into redox (#21448)
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-01-12 22:44:44 -08:00
QMK Bot
ceea0d72c1 Merge remote-tracking branch 'origin/master' into develop 2024-01-13 06:13:48 +00:00
ziptyze
452ac581a5 [Keyboard] pi60rgb_v2 (#22156)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-01-12 22:13:09 -08:00
QMK Bot
c35b552510 Merge remote-tracking branch 'origin/master' into develop 2024-01-12 12:08:43 +00:00
Nick Brassel
c6ed3cdf10 Add more unwanted compilation output files to .gitignore. (#22894) 2024-01-12 12:08:11 +00:00
JohSchneider
d9b1ab9ae0 pointing_device: motion pin define and c-format weirdness (#22802)
the mutual exclusive POINTING_DEVICE_MOTION_PIN and SPLIT_POINTING_ENABLE influence if and how the `pointing_device_driver.get_report` is triggered. now the way the define is wrapping around an "unbraced" if leads clang-format to weirdly indent the first line in the 'SPLIT_POINTING_ENABLE' as the first command after the if.

this hints that any code addition in between the two - that possibly should run regardless, would break the if-def enabled code.

this can be solved by adding a pair of curly braces in the POINTING_DEVICE_MOTION_PIN part, to clearly denote which commands are to be skipped if the motion pin shows now activity.

Co-authored-by: Johannes <you@example.com>
2024-01-10 17:38:13 +01:00
Joel Challis
41948350e8 Migrate RGB Matrix config to info.json - NOPQ (#22866) 2024-01-10 09:55:09 +00:00
Joel Challis
833abef115 Migrate RGB Matrix config to info.json - XZY (#22879) 2024-01-10 09:43:41 +00:00
Ryan
58696a3937 LED drivers: switch to i2c_writeReg() (#22878) 2024-01-10 17:25:34 +11:00
Ryan
7a3183b8c8 LED drivers: change write_pwm_buffer() return type to void (#22869) 2024-01-10 12:48:19 +11:00
Joel Challis
8de8af6632 capsunlocked/cu80/v2: Fix invalid RGB matrix config (#22873) 2024-01-09 16:00:48 +00:00
Joel Challis
b6b3efc14b Remove console out endpoint (#22304) 2024-01-09 14:01:34 +00:00
Joel Challis
ccec4867c8 Align SPLIT_HAND_MATRIX_GRID left/right logic with SPLIT_HAND_PIN (#22775) 2024-01-09 22:24:53 +11:00
QMK Bot
58806984a6 Merge remote-tracking branch 'origin/master' into develop 2024-01-09 11:24:39 +00:00
Joy Lee
6cc56f3f8c Added skiller_sgk50_s3 keyboard (#22382)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2024-01-09 22:24:11 +11:00
QMK Bot
6cdc00d046 [CI] Regenerate Files (#22872) 2024-01-09 22:18:34 +11:00
QMK Bot
c1f6eb2e9e Merge remote-tracking branch 'origin/master' into develop 2024-01-09 11:15:47 +00:00
Thomas White
31fdf7d899 add pywinusb lib to list of example libs for HID (#22747) 2024-01-09 22:13:51 +11:00
フィルターペーパー
f39386a112 Solid reactive: improve fading effect (#22656) 2024-01-09 22:12:42 +11:00
Nebuleon
e67d2c2f6f Add Canadian French input locale (#21456)
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-01-09 22:11:59 +11:00
zv0n
744ac91f5e [Keyboard] Fix VID and PID for AnnePro2 (#22263) 2024-01-09 22:09:39 +11:00
Paul Landers
1f6dfd19cf Ignore space cadet key release when caps word is active (#21721) 2024-01-09 22:07:10 +11:00
3araht
8b48f0dea3 MIDI sustain effect fix on qmk 0.22.2 (#22114) 2024-01-09 22:05:30 +11:00
QMK Bot
8b671b9969 Merge remote-tracking branch 'origin/master' into develop 2024-01-09 10:46:13 +00:00
Kai
13f7b68240 Fix user hook call for dynamic_macro_record_key (#22250) 2024-01-09 21:45:44 +11:00
QMK Bot
bd11ddc093 Merge remote-tracking branch 'origin/master' into develop 2024-01-09 10:18:17 +00:00
Markus Knutsson
53f1e3b11f Lotus 58 Glow - Added Auto shift to OLED, corrected OLED orientation (#22424)
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
2024-01-09 21:17:46 +11:00
Marcel Robitaille
ce05dc6fa1 Add option for auto mouse movement threshold (#21398)
Fixes #21396
2024-01-09 21:16:50 +11:00
Joel Challis
66050bb809 Migrate dynamic_keymap.layer_count < 4 where requried (#22091)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2024-01-09 21:15:03 +11:00
Joel Challis
455cd65e80 Prevent qmk migrate processing unparsed info.json values (#22374) 2024-01-09 20:59:36 +11:00
QMK Bot
34aa533246 Merge remote-tracking branch 'origin/master' into develop 2024-01-09 09:53:54 +00:00
Magne Lauritzen
89b46eedd5 Raise Circumflex from the grave in sendstring_french.h (#22285) 2024-01-09 20:53:26 +11:00
Byron Clark
ff44edfad7 [Keyboard] Fix Piantor v2 3x5 layout issues (#22860) 2024-01-08 02:29:31 -08:00
Ryan
8b95dc6e00 LED drivers: more formatting (#22865) 2024-01-08 17:28:40 +11:00
Ryan
7467231158 snled27351: change write_register() return type to void (#22825) 2024-01-08 04:54:47 +00:00
Ryan
368a2eb08f is31fl3733: change write_register() return type to void (#22824) 2024-01-08 04:54:26 +00:00
Joel Challis
7fb8dd1440 Migrate RGB Matrix config to info.json - L (#22864) 2024-01-08 04:41:01 +00:00
Joel Challis
ce34549c26 Migrate RGB Matrix config to info.json (#22863) 2024-01-08 04:27:01 +00:00
Joel Challis
a45107e152 Migrate RGB Matrix config to info.json - H (#22861) 2024-01-08 02:15:50 +00:00
Joel Challis
c7b59a96df Migrate RGB Matrix config to info.json - G (#22859) 2024-01-08 02:13:30 +00:00
Joel Challis
0870b796b4 Migrate RGB Matrix config to info.json - J (#22862) 2024-01-08 02:10:56 +00:00
Ryan
bdede8b2cd LED drivers: misc formatting and typos (#22857) 2024-01-08 12:24:10 +11:00
Joel Challis
6e3cc56bdf Migrate RGB Matrix config to info.json - D (#22811) 2024-01-07 13:36:14 +00:00
Ryan
7114eb25f8 WT boards: extract g_is31fl3736_leds from wt_mono_backlight (#22823) 2024-01-07 18:43:37 +11:00
QMK Bot
4617b0cfe7 Merge remote-tracking branch 'origin/master' into develop 2024-01-07 07:38:24 +00:00
Ryan
0b0c31665e Keychron Q1V1: fix incorrect 3733 address (#22852) 2024-01-07 18:37:56 +11:00
QMK Bot
fa133aeea5 Merge remote-tracking branch 'origin/master' into develop 2024-01-07 07:36:50 +00:00
Joe Scotto
7e03877924 [Keyboard] Add ScottoKatana handwired keyboard (#22805) 2024-01-06 23:36:22 -08:00
QMK Bot
42fced9514 Merge remote-tracking branch 'origin/master' into develop 2024-01-07 07:36:14 +00:00
4pplet
31d28ba228 [Keyboard] Add Nordic65 by KBnordic (#22817)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: 4pplet <4pplet@protonmail.com>
Co-authored-by: 4pplet <stefan.ess@gmail.com>
2024-01-06 23:35:45 -08:00
Ryan
b3f55cb5b2 apa102: cleanups (#22826) 2024-01-07 17:48:14 +11:00
Ryan
e5203f86e2 is31fl3733: fix driver sync backwards compatibility defines (#22851) 2024-01-07 17:46:12 +11:00
Joel Challis
71257e21e6 Generate true/false for _DEFAULT_ON options (#22829) 2024-01-06 13:16:23 +00:00
QMK Bot
ee3540e8df Merge remote-tracking branch 'origin/master' into develop 2024-01-06 01:06:51 +00:00
James Kneafsey
a474cac2c3 Update keymap.md (#22834) 2024-01-06 12:06:14 +11:00
Drashna Jaelre
7ed3138e5f Remove PWM advanced check for WS2812 driver (#22830) 2024-01-05 12:27:55 +00:00
QMK Bot
e09d84c47c Merge remote-tracking branch 'origin/master' into develop 2024-01-04 09:00:08 +00:00
QMK Bot
b02abcb9a6 Regenerate Files (#22821) 2024-01-04 08:59:38 +00:00
QMK Bot
d2b16962ff Merge remote-tracking branch 'origin/master' into develop 2024-01-04 07:29:02 +00:00
dependabot[bot]
b514a591f3 Bump tj-actions/changed-files from 40 to 41 in /.github/workflows (#22812)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 40 to 41.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](https://github.com/tj-actions/changed-files/compare/v40...v41)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-04 07:28:33 +00:00
Ryan
597de0e298 LED drivers: rename "simple" to "mono" (#22814) 2024-01-04 06:05:37 +00:00
Joel Challis
1bd9b9204d Migrate RGB Matrix config to info.json - EF (#22808) 2024-01-04 06:04:57 +00:00
Joel Challis
a5f1438f58 Migrate RGB Matrix config to info.json - C (#22807) 2024-01-04 06:00:47 +00:00
Joel Challis
c412b7fc42 Migrate RGB Matrix config to info.json - B (#22806) 2024-01-04 06:00:28 +00:00
Joel Challis
5267329caa Ensure LED config is extracted when feature is disabled (#22809)
* Ensure LED config is extracted when feature is disabled

* Only attempt LED search if dd led config is missing
2024-01-04 05:47:52 +00:00
Ryan
f583d2fef0 Remove IS31FLCOMMON code (#22800) 2024-01-02 16:26:01 +11:00
Joel Challis
8a6b7003f7 Migrate RGB Matrix config to info.json - [0-9] (#22797) 2024-01-02 03:07:28 +00:00
Thomas Mørch
d59d768fea Keychron Q11 - Enable SPLIT_WATCHDOG (#22799) 2024-01-02 03:06:47 +00:00
Joel Challis
60f0132bd5 Migrate RGB Matrix config to info.json - A (#22798) 2024-01-02 03:05:08 +00:00
Ryan
0a6913b682 LED drivers: extract IS31FL3746A from IS31COMMON (#22637) 2024-01-01 21:44:18 +11:00
Ryan
a88dd675bf LED drivers: extract IS31FL3745 from IS31COMMON (#22636) 2024-01-01 19:31:44 +11:00
Ryan
ae2d5e2e5a LED drivers: extract IS31FL3743A from IS31COMMON (#22635) 2024-01-01 17:04:51 +11:00
Joel Challis
0ea3203205 Temporary fix for mechlovin/olly/octagon (#22796) 2024-01-01 02:40:10 +00:00
QMK Bot
b12b5485bc Update copyright year on generated files (#22795) 2024-01-01 02:25:20 +00:00
Ryan
e1c0bd8a7c LED drivers: extract IS31FL3742A from IS31COMMON (#22620) 2024-01-01 12:40:35 +11:00
Joel Challis
709d07aebc Migrate LED Matrix config to info.json (#22792) 2024-01-01 01:33:20 +00:00
QMK Bot
ef356ddee6 Merge remote-tracking branch 'origin/master' into develop 2023-12-31 18:26:28 +00:00
Antoine Bertin
90811118b7 docs(skeletyl): fix readme instructions (#22791) 2023-12-31 18:25:58 +00:00
QMK Bot
a081fc7301 Merge remote-tracking branch 'origin/master' into develop 2023-12-29 16:17:49 +00:00
4pplet
fc20e0b014 Waffling60 iso rev e (#22733)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-12-29 08:17:20 -08:00
Joel Challis
9e50faedae Remove incorrect use of WS2812_PIO_USE_PIO1 (#22771) 2023-12-28 17:07:40 +00:00
QMK Bot
73f962766e Merge remote-tracking branch 'origin/master' into develop 2023-12-28 04:37:34 +00:00
yuezp
420b13468b [Keyboard] Add meetlab kafkasplit (#22756)
Co-authored-by: “yuezp” <“yuezpchn@126.com”>
2023-12-27 20:37:01 -08:00
QMK Bot
a011b5ed5c Merge remote-tracking branch 'origin/master' into develop 2023-12-27 22:11:36 +00:00
Tom Barnes
2505d7edd0 vendor keymaps-mechboards via updates (#22767)
* update mb_via keymaps to new naming for vendor keymaps

* missed a reference to old name, tidy crkbd readme, add lily58 readme

* fix typo

* fix typo

* delete shopify image
2023-12-27 15:11:06 -07:00
フィルターペーパー
594d03f4aa Refactor: group hub keyboards (#22762) 2023-12-26 20:28:06 -08:00
フィルターペーパー
2a048fbb65 Refactor: group kira keyboards (#22760) 2023-12-26 20:27:29 -08:00
フィルターペーパー
489151d7a0 Refactor: move macro3 into handwired folder (#22759) 2023-12-26 20:26:48 -08:00
QMK Bot
da6a05bfea Merge remote-tracking branch 'origin/master' into develop 2023-12-27 01:13:09 +00:00
Ryan
cc08f230ff bm40hsrgb/rev2: disable some RGB Matrix effects to reduce filesize (#22761) 2023-12-27 01:12:42 +00:00
フィルターペーパー
592a2d26ce Default folder correction for rookiebwoy (#22753)
Add prefix for the default folder directive
2023-12-25 23:58:21 +00:00
フィルターペーパー
df87a75c82 Default folder correction for kumaokobo (#22750)
Add prefix for the default folder directive
2023-12-25 17:12:23 +00:00
フィルターペーパー
e5a92fa80f Refactor: group rookiebwoy keyboards (#22745)
Move @rookiebwoy's keyboards into rookiebwoy folder
2023-12-25 07:40:30 -07:00
QMK Bot
2166eaf9a7 Merge remote-tracking branch 'origin/master' into develop 2023-12-24 18:17:01 +00:00
Jesse Leventhal
83b84187ea [Keyboard] Add Noodlepad_Micro (#22703)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2023-12-24 10:16:34 -08:00
Vlad K
830ca0c415 [Keyboard] Add Orthograph (#21770)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Vlad Kvitnevskiy <vladkvit@outlook.com>
Co-authored-by: Your Name <you@example.com>
2023-12-24 10:16:05 -08:00
Joel Challis
b24bd2351a Remove redundant audio eeconfig init (#22736) 2023-12-24 06:52:58 +00:00
Joel Challis
b824faca71 Align location of tap dance keycode (#22742) 2023-12-24 06:52:41 +00:00
QMK Bot
03848bb3aa Merge remote-tracking branch 'origin/master' into develop 2023-12-24 06:31:22 +00:00
Sắn
15ed59cacc [Keyboard] Add Nuxros RE65 (#22078)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-12-23 22:30:54 -08:00
QMK Bot
5cf0888197 Merge remote-tracking branch 'origin/master' into develop 2023-12-24 03:35:08 +00:00
khchen2004
fae6b85640 [Keyboard] add scorpio pcb (#22732) 2023-12-23 19:34:17 -08:00
フィルターペーパー
b37d23bfa5 Refactor: group shandoncodes keyboards (#22743) 2023-12-23 19:02:29 -08:00
QMK Bot
5050b91068 Merge remote-tracking branch 'origin/master' into develop 2023-12-24 03:02:09 +00:00
Joy Lee
2d5cfd3ecf [Keyboard] Add darmoshark k3 (#21980)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Proceee <proceee@gmail.com>
2023-12-23 19:01:42 -08:00
QMK Bot
f70edea123 Merge remote-tracking branch 'origin/master' into develop 2023-12-23 23:57:39 +00:00
フィルターペーパー
456291d04e Refactor: move miniaxe into kagizaraya (#22708)
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-12-23 15:49:47 -08:00
peepeetee
a1d29982dc Add Momokai Aurora Image (#22728)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-12-23 15:49:37 -08:00
フィルターペーパー
6510188138 Refactor: move keyboards into kbdmania folder (#22714) 2023-12-23 15:49:18 -08:00
フィルターペーパー
6f16349e93 Refactor: move keyboards into monokei folder (#22715) 2023-12-23 15:48:40 -08:00
フィルターペーパー
9642cd9046 Refactor: move keyboards into kumaokobo (#22719) 2023-12-23 15:48:32 -08:00
フィルターペーパー
77688ac706 Refactor: move keyboards into kezewa (#22712) 2023-12-23 15:48:18 -08:00
フィルターペーパー
0b410ffd77 Refactor: move keyboards into zigotica folder (#22709) 2023-12-23 15:46:46 -08:00
Drashna Jaelre
70a7ed26e1 [Keyboard] Move Moonlander to ZSA folder (#22740) 2023-12-23 15:46:07 -08:00
フィルターペーパー
300af1e5bf Refactor: move keyboards into laneware folder (#22710) 2023-12-23 15:45:53 -08:00
QMK Bot
84ba999f2a Merge remote-tracking branch 'origin/master' into develop 2023-12-23 23:45:41 +00:00
Jesse Leventhal
7e47446695 [Keyboard] Noodlepad Additions and Updates (#22701)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-12-23 15:45:33 -08:00
yuezp
08711e1cf7 [Keyboard] Add kafka68 (#22684)
Co-authored-by: “yuezp” <“yuezpchn@126.com”>
2023-12-23 15:45:12 -08:00
QMK Bot
6e356c7860 Merge remote-tracking branch 'origin/master' into develop 2023-12-23 22:06:04 +00:00
Joe Scotto
0e9e2963ca [Keyboard] Fix Scotto61 Configurator Layout (#22718) 2023-12-23 14:05:36 -08:00
QMK Bot
1fbbb1fa9b Merge remote-tracking branch 'origin/master' into develop 2023-12-23 21:52:08 +00:00
Joe Scotto
1e304433e5 [Keyboard] Add Scotto108 handwired keyboard (#22720)
Co-authored-by: jack <0x6a73@protonmail.com>
2023-12-23 13:51:38 -08:00
QMK Bot
0c48e69ced Merge remote-tracking branch 'origin/master' into develop 2023-12-23 21:12:15 +00:00
Abhijithabhi
b5b886e36f [Keyboard] Add redragon k617 port (#22410)
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-12-23 13:11:39 -08:00
user176176
92d7b8cb54 [Keyboard] null ST110R2.1 (SaikouType) (#21623)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: user176176 <you@example.com>
2023-12-22 23:48:27 -08:00
Drashna Jaelre
29f8fa35cf [Audio] Enable Complementary output for PWM Hardware driver (#22726)
Co-authored-by: Joel Challis <git@zvecr.com>
2023-12-21 19:38:59 -08:00
QMK Bot
9069c4540f Merge remote-tracking branch 'origin/master' into develop 2023-12-21 12:31:24 +00:00
Tom Barnes
5031e0e35c [docs] - reword PR checklist for vendor keymaps/userspace changes (#22725)
* reword PR checklist for vendor keymaps/userspace changes

* clarify vendor keymaps slightly

* delete layout macro related line
2023-12-21 12:30:55 +00:00
Jesse Leventhal
088853dd22 [Keyboard] Updating NCC1701KB (#22721) 2023-12-20 16:24:54 -08:00
QMK Bot
6fbd79ce4e Merge remote-tracking branch 'origin/master' into develop 2023-12-20 22:32:49 +00:00
Nick Brassel
2661ee282a [Bugfix] Manipulate deferred executor slot only if tokens match (#22722) 2023-12-21 09:32:19 +11:00
QMK Bot
e80f5de78c Merge remote-tracking branch 'origin/master' into develop 2023-12-20 22:02:55 +00:00
Nick Brassel
3afa2a9439 [Keymap Removal] Restore mechboards mb_via keymaps. (#22723) 2023-12-21 09:02:22 +11:00
fauxpark
2c191e21c2 Merge remote-tracking branch 'upstream/master' into develop 2023-12-20 16:03:14 +11:00
Ryan
8812a09581 Rename RGB_DISABLE_WHEN_USB_SUSPENDED -> RGB_MATRIX_SLEEP (#22682) 2023-12-20 13:31:50 +11:00
Ryan
73758d3d3a Rename LED_DISABLE_WHEN_USB_SUSPENDED -> LED_MATRIX_SLEEP (#22681) 2023-12-20 13:31:39 +11:00
フィルターペーパー
c8728880de takashicompany: readme link correction (#22711)
Updated Github link
2023-12-19 13:54:32 -07:00
Pham Duc Minh
2ce2fa6d06 [Keyboard] Add Deemen17 DE60FS (#22667)
* Add de60fs

* Update

* Add image

* Add line break for rules.mk

* Update keyboards/deemen17/de60fs/keymaps/default/keymap.c

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

* Update keyboards/deemen17/de60fs/info.json

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

* Remove readme of keymap folder

* Change to KC_RSFT

* Add Community Layout support

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

* Update keyboards/deemen17/de60fs/info.json

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

* Update keyboards/deemen17/de60fs/keymaps/default/keymap.c

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

* Update keyboards/deemen17/de60fs/keymaps/via/keymap.c

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

* Add description in readme

---------

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-12-18 17:02:47 -07:00
Joel Challis
c9d90db95c [Keymap Removal] xiudi/xd75 and related keymaps. (#22698) 2023-12-19 09:02:03 +11:00
Joel Challis
1b75a84a39 [Keymap Removal] tada68 and related keymaps. (#22699) 2023-12-19 08:56:52 +11:00
Joel Challis
fc4e6c61a4 [Keymap Removal] Restore splitkb 'debug' keymaps (#22700) 2023-12-19 08:55:36 +11:00
Ryan
b9e81c0691 Update keyboard LED driver configs (#22638) 2023-12-18 20:13:08 +00:00
Nick Brassel
a1c8b1ebf7 Remove obvious user keymaps, keyboards/{d,e,f}* edition. (#22695) 2023-12-18 21:45:52 +11:00
Nick Brassel
d235352504 Remove obvious user keymaps, keyboards/{b,c}* edition. (#22693) 2023-12-18 16:05:50 +11:00
Nick Brassel
f25226453f Remove obvious user keymaps, keyboards/a* edition. (#22692) 2023-12-18 14:06:47 +11:00
Nick Brassel
9539f135d8 Remove obvious user keymaps, keyboards/[0-9]* edition. (#22691) 2023-12-18 13:53:02 +11:00
Joel Challis
27a710861e [Keymap Removal] Preonic and related keymaps. (#22689) 2023-12-18 12:51:24 +11:00
DOIO2022
1556a2ed0e [Keyboard] Add doio KB19 (#22393)
* Add files via upload

* Update keyboards/doio/kb3x/config.h

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

* Update keyboards/doio/kb3x/info.json

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

* Update keyboards/doio/kb3x/keymaps/via/keymap.c

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

* Update keyboards/doio/kb3x/config.h

Co-authored-by: adophoxia <100170946+adophoxia@users.noreply.github.com>

* Update keyboards/doio/kb3x/keymaps/default/keymap.c

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

* Update rules.mk

* Update info.json

* Update keyboards/doio/kb3x/info.json

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

* Update keyboards/doio/kb3x/rules.mk

Co-authored-by: adophoxia <100170946+adophoxia@users.noreply.github.com>

* Add files via upload

* Update keyboards/doio/kb3x/info.json

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

* Update keyboards/doio/kb3x/config.h

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

* Delete keyboards/doio/kb3x/rules.mk

* Update keyboards/doio/kb3x/keymaps/default/keymap.c

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

* Update keyboards/doio/kb3x/keymaps/via/keymap.c

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

* Add KB19

* Delete keyboards/doio/kb3x directory

* format  info.json

* format info.json

* Create rules.mk

* Update rules.mk

* Update keyboards/doio/kb19/config.h

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

* Update info.json

* Update keymap.c

* Update keymap.c

* Delete keyboards/doio/kb19/config.h

* Update keyboards/doio/kb19/keymaps/via/keymap.c

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

* Update keyboards/doio/kb19/keymaps/default/keymap.c

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

---------

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: adophoxia <100170946+adophoxia@users.noreply.github.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-12-17 18:51:14 -07:00
QMK Bot
62db54dc32 Merge remote-tracking branch 'origin/master' into develop 2023-12-18 01:49:49 +00:00
Joel Challis
990895f03f [Keymap Removal] keebio/iris and related keymaps. (#22690) 2023-12-18 12:49:19 +11:00
QMK Bot
e27034f800 Merge remote-tracking branch 'origin/master' into develop 2023-12-17 18:51:13 +00:00
Ivan Gromov
54200b7b82 [Keyboard] Add Diablo (#22414)
* Create keymap.c

* Create keymap.c

* Create rules.mk

* Add files via upload

* Create keymap.c

* Create keymap.c

* Create rules.mk

* Add files via upload

* Update keymap.c

* Update keymap.c

* Update keyboards/keyten/diablo/keymaps/default/keymap.c

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

* Delete keyboards/keyten/kt60hs_t directory

* Update keyboards/keyten/diablo/readme.md

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

* Update keyboards/keyten/diablo/readme.md

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

* Update info.json

* Update info.json

* Update keymap.c

* Update keymap.c

* Update keyboards/keyten/diablo/info.json

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

* Update keyboards/keyten/diablo/info.json

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

---------

Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-12-17 11:50:44 -07:00
Nick Brassel
ae90b1d1e5 Merge remote-tracking branch 'upstream/master' into develop 2023-12-17 22:27:35 +11:00
Nick Brassel
7ea022ba88 [Keymap Removal] Planck and related keymaps. (#22683) 2023-12-17 21:54:01 +11:00
QMK Bot
02f6ab264d Merge remote-tracking branch 'origin/master' into develop 2023-12-17 08:40:06 +00:00
MakotoKurauchi
f0e4bc937a Add keyboard Ergo68 (#22677)
* Ergo68の追加

* 写真の追加

* fix build error

* Update keyboards/yushakobo/ergo68/readme.md

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

* Update keyboards/yushakobo/ergo68/keymaps/via/keymap.c

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

* config.h migrated to info.json

* Update keyboards/yushakobo/ergo68/info.json

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

* Update keyboards/yushakobo/ergo68/readme.md

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

* Update keyboards/yushakobo/ergo68/info.json

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

* Update keyboards/yushakobo/ergo68/keymaps/via/rules.mk

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

* Update keyboards/yushakobo/ergo68/keymaps/default/keymap.c

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

* Update keyboards/yushakobo/ergo68/keymaps/via/keymap.c

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

* Update keyboards/yushakobo/ergo68/info.json

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

* Update keyboards/yushakobo/ergo68/info.json

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

* Update keyboards/yushakobo/ergo68/info.json

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

---------

Co-authored-by: Salicylic-acid3 <46864619+Salicylic-acid3@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2023-12-17 01:39:35 -07:00
QMK Bot
94c64fef51 Merge remote-tracking branch 'origin/master' into develop 2023-12-17 05:01:26 +00:00
yuezp
849ddc27ee [Keyboard] Add kafka60 (#22659)
Co-authored-by: “yuezp” <“yuezpchn@126.com”>
2023-12-16 22:00:58 -07:00
QMK Bot
9ec0f3cd59 Merge remote-tracking branch 'origin/master' into develop 2023-12-17 02:18:48 +00:00
adophoxia
bd932f1cce [Keyboard] Add Odin75 (#22650)
* Add Odin75

* Update keyboards/kbdfans/odin75/lib/bongocat.h

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

* Update keyboards/kbdfans/odin75/keymaps/via/keymap.c

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

* Update keyboards/kbdfans/odin75/halconf.h

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

* Update keyboards/kbdfans/odin75/keymaps/default/keymap.c

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

* Update keyboards/kbdfans/odin75/keymaps/via/keymap.c

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

* Update keyboards/kbdfans/odin75/odin75.c

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

* Update keyboards/kbdfans/odin75/keymaps/default/keymap.c

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

* Update keyboards/kbdfans/odin75/mcuconf.h

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

* Fix indentation

* Add back missing `return false;`

* Update keyboards/kbdfans/odin75/odin75.c

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

* Update keyboards/kbdfans/odin75/keymaps/via/keymap.c

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

* Update keyboards/kbdfans/odin75/keymaps/default/keymap.c

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

* Update keyboards/kbdfans/odin75/odin75.c

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

* Apply suggestions from code review

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

---------

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-12-16 19:18:11 -07:00
Joel Challis
11be3e7c64 Remove redundant backlight eeconfig init (#22675) 2023-12-16 21:15:55 +00:00
Joel Challis
f165eb5cc9 Remove redundant rgblight eeconfig init (#22674) 2023-12-16 15:43:53 +00:00
Joel Challis
dc5befd139 Remove redundant RGB/LED matrix eeconfig init (#22673) 2023-12-16 15:43:39 +00:00
QMK Bot
7298551e19 Merge remote-tracking branch 'origin/master' into develop 2023-12-15 21:29:02 +00:00
Wolf Van Herreweghe
9874d78da3 [Keyboard] Add Mode Tempo PCB's (#22550)
* Add mode 60 PCB's

* Update Licenses

* Unify Vendor name cross other projects

* Move pin description from Config to Info.json

* Replace WS2812 driver with PWM

* Update keyboards/mode/m60h/config.h

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

* Update keyboards/mode/m60h_f/config.h

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

* Update keyboards/mode/m60h/readme.md

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

* Update keyboards/mode/m60s/config.h

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

* Update keyboards/mode/m60s/readme.md

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

* Format info.json files

* replace link with images

* Fix spacings in Config file

* remove non essential file

* Update readme.md spacings

* Update readme.md Spacings

* Update readme.md

---------

Co-authored-by: Wolf <contact@vwolf.be>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-12-15 14:28:27 -07:00
QMK Bot
d2fcf78266 Merge remote-tracking branch 'origin/master' into develop 2023-12-15 21:26:06 +00:00
Joe Scotto
443971ab8e Add Scotto61 handwired keyboard (#22666)
* Add Scotto61 handwired keyboard

* qmk format info.json
2023-12-15 14:25:37 -07:00
QMK Bot
9ea3f5575a Merge remote-tracking branch 'origin/master' into develop 2023-12-15 21:23:19 +00:00
Panos Sakkos
b9bc470404 Enable Link Time Optimization for Lily58 Default Keymap (#22476)
* enable LTO for Lily58 Default keymap

* remove NKRO from lily58 default
2023-12-15 14:22:50 -07:00
QMK Bot
f8c6c6c395 Merge remote-tracking branch 'origin/master' into develop 2023-12-15 18:49:26 +00:00
Pablo Martínez
52c794b9fc Initial (#22671) 2023-12-16 05:48:52 +11:00
QMK Bot
d32812850c Merge remote-tracking branch 'origin/master' into develop 2023-12-15 14:31:04 +00:00
Dasky
4b3f9b8b3a Add Reverb keyboard. (#22387)
Co-authored-by: Joel Challis <git@zvecr.com>
2023-12-15 14:30:35 +00:00
QMK Bot
9de717428f Merge remote-tracking branch 'origin/master' into develop 2023-12-15 01:58:33 +00:00
dependabot[bot]
0059393868 Bump tj-actions/changed-files from 39 to 40 (#22338)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 39 to 40.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](https://github.com/tj-actions/changed-files/compare/v39...v40)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-15 01:58:04 +00:00
QMK Bot
006d3dbe68 Merge remote-tracking branch 'origin/master' into develop 2023-12-15 01:53:43 +00:00
dependabot[bot]
3445396d8e Bump actions/upload-artifact from 3 to 4 (#22661)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-15 12:53:14 +11:00
QMK Bot
b09fae9eba Merge remote-tracking branch 'origin/master' into develop 2023-12-14 17:44:31 +00:00
フィルターペーパー
26b6ba7607 Cradio: update default keymap (#22657)
* Reduce copyright blurb
* Change home row mod placing
2023-12-14 10:43:59 -07:00
adophoxia
f19fa9854e [Keyboard] Update Keychron Q8 (#22578)
* Update Q8

* Run `qmk format-json` and remove `RGB_MATRIX_LED_COUNT`

* Update keyboards/keychron/q8/ansi_encoder/info.json

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

* Update keyboards/keychron/q8/iso/info.json

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

---------

Co-authored-by: Ryan <fauxpark@gmail.com>
2023-12-14 00:44:44 -07:00
QMK Bot
79df864aa1 Merge remote-tracking branch 'origin/master' into develop 2023-12-14 07:44:04 +00:00
azhizhinov
afb821077b [Keyboard] Add El Cantor HS (#22531)
* Initial upload.

Initial upload.

* Update readme.md

* Delete keyboards/elcantorhs/keymaps/zeromist directory

* Adding folder for VIA.

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update keymap.c

* Update info.json

* Update info.json

* Update info.json

* Update info.json

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update config.h

* Update halconf.h

* Update mcuconf.h

* Create keymap.c

* Update info.json

* Update keyboards/elcantorhs/readme.md

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

* Update keyboards/elcantorhs/info.json

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

* Update keyboards/elcantorhs/info.json

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

* Update keyboards/elcantorhs/info.json

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

* Update keyboards/elcantorhs/rules.mk

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

* Update keyboards/elcantorhs/info.json

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

* Update keyboards/elcantorhs/config.h

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

* Update readme.md

* Update keyboards/elcantorhs/info.json

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

* Update config.h

* Update halconf.h

* Update keymap.c

* Update keymap.c

* Update mcuconf.h

* Update keyboards/elcantorhs/readme.md

Yep. Can't say better. :-)

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

* Update readme.md

* Update keyboards/elcantorhs/config.h

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

---------

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-12-14 00:43:22 -07:00
QMK Bot
7fe03a73b8 Merge remote-tracking branch 'origin/master' into develop 2023-12-14 07:41:54 +00:00
Freather
4cdb19291f [Keyboard] Add fuji75 (#22158)
* adding fuji75 pcb support

adding fuji75 pcb support
includes
solder
hotswap

* Update keymap.c

* Update keymap.c

* Update keyboards/sakura_workshop/fuji75/fuji75.c

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

* Update keyboards/sakura_workshop/fuji75/solder/readme.md

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

* Update keyboards/sakura_workshop/fuji75/hotswap/readme.md

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

* Update keyboards/sakura_workshop/fuji75/solder/readme.md

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

* Update keyboards/sakura_workshop/fuji75/info.json

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

* Update keyboards/sakura_workshop/fuji75/hotswap/readme.md

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

* Delete keyboards/sakura_workshop/fuji75/config.h

* Update keyboards/sakura_workshop/fuji75/solder/readme.md

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

* Update keyboards/sakura_workshop/fuji75/hotswap/readme.md

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

* update info.json

update info.json per requested by @fauxpark
reran qmk format-json

---------

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-12-14 00:41:13 -07:00
QMK Bot
aa7eef0a02 Merge remote-tracking branch 'origin/master' into develop 2023-12-14 01:07:43 +00:00
Joel Challis
c44a232c57 Remove invalid keymap from zos/65s (#22655)
Default community layout is nameddefault_65_ansi_blocker so should never also be used at the keyboard level.
2023-12-14 01:07:15 +00:00
Pedro Del Moral Lopez
d3da222728 kikoslab/kl90: Update firmware to support encoder map (#22649) 2023-12-14 00:02:34 +00:00
QMK Bot
1b1c6326c7 Merge remote-tracking branch 'origin/master' into develop 2023-12-13 23:43:06 +00:00
PixelSpaceStudio
357a10f6c8 Add keyboard shadow80 (#22534)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-12-13 15:42:36 -08:00
QMK Bot
c46de05eb0 Merge remote-tracking branch 'origin/master' into develop 2023-12-13 23:41:33 +00:00
ZOSKB
85a0da9a55 [Keyboard] Add zos (#22491)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-12-13 15:41:26 -08:00
peepeetee
71525fa1a2 [Keyboard] minor Momokai Aurora bugfixes and RGB updates (#22486) 2023-12-13 15:41:01 -08:00
QMK Bot
f6774f2f1e Merge remote-tracking branch 'origin/master' into develop 2023-12-13 22:20:21 +00:00
Pablo Martínez
9c93f36034 [Bugfix] qmk {compile, flash} return code (#22639) 2023-12-14 09:19:49 +11:00
QMK Bot
f870a04bb7 Merge remote-tracking branch 'origin/master' into develop 2023-12-13 19:41:05 +00:00
Tom Barnes
68afa1ef06 [keyboard] Add Keycapsss 3w6_2040 (#22642)
* initial commit

* tidy info.json, add readme.md

* correct license headers

* fix some minor typos

* additions to readme

* try and conform to standards

* remove duplicates from config.h

* remove unneccessary line from rules.mk

* further tidying

* some small misses

* some small misses

* repair via keymap

* actually fixed, d'oh

* Update keyboards/keycapsss/3w6_2040/info.json

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

* Update keyboards/keycapsss/3w6_2040/info.json

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

* Update keyboards/keycapsss/3w6_2040/keymaps/default/keymap.c

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

* Update keyboards/keycapsss/3w6_2040/info.json

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

* Update keyboards/keycapsss/3w6_2040/keymaps/via/keymap.c

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

* Update keyboards/keycapsss/3w6_2040/readme.md

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

* remove via config.h

---------

Co-authored-by: jack <0x6a73@protonmail.com>
2023-12-13 12:40:33 -07:00
Less/Rikki
49527afc6a fix: improper usage of keyboard/user-level functions (#22652) 2023-12-13 18:33:15 +00:00
Zykrah
05d2b7e2ac Rename Pumpkin Pad to Pumkinpad (#22651) 2023-12-13 18:28:17 +00:00
QMK Bot
ee90267734 Merge remote-tracking branch 'origin/master' into develop 2023-12-13 17:25:54 +00:00
Starry Knight
ea56863e32 [Keyboard] add dude09 (#22648)
* dude09 macropad files 

added to keyboards/handwired/starrykeebs/dude09

* Update readme.md

fixed imgur link

* Update readme.md

* Update readme.md

* Update info.json

formatting using qmk

* Update config.h

header

* Update keymap.c

header

* Update keymap.c

header

* Update readme.md

* Delete keyboards/handwired/starrykeebs/dude09/via.json

not needed for QMK

* Delete keyboards/handwired/starrykeebs/dude09/config.h

empty file

* Update info.json

windows to unix le

* Update keymap.c

windows to unix le

* Update keymap.c

windows to unix le

* Update readme.md

windows to unix le

* fixed new line windows to unix

* Update info.json

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

* Update readme.md

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

* Update readme.md

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

* Update info.json

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

* Update keyboards/handwired/starrykeebs/dude09/keymaps/via/rules.mk

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

* Update keyboards/handwired/starrykeebs/dude09/rules.mk

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

* Update readme.md

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

---------

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2023-12-13 10:25:20 -07:00
QMK Bot
9c5880a8b8 Merge remote-tracking branch 'origin/master' into develop 2023-12-13 02:26:24 +00:00
xoedusk
cf3c8a2138 Give definition of 'CLI' for new users (#22647) 2023-12-13 02:25:55 +00:00
Nebuleon
229a1690a7 dac_additive: Decouple the buffer length from the waveform length (#22276)
* dac_additive: Decouple the buffer length from the waveform length

* Formatting changes for the previous commit

* Reformat waveform tables with rows of 16 entries, ending at column 116

* Revert "Reformat waveform tables with rows of 16 entries, ending at column 116"

This reverts commit 6f2d37908d.
2023-12-12 20:06:56 +01:00
Duncan Sutherland
02c5afc7d5 Karn: correct layout data (#22201) 2023-12-12 09:48:13 -07:00
QMK Bot
dec0d78724 Merge remote-tracking branch 'origin/master' into develop 2023-12-12 16:46:29 +00:00
Tom Barnes
d95182f5b5 [documentation] QMK migrate docs patch (#22646) 2023-12-12 09:46:00 -07:00
QMK Bot
c2c78996d9 Merge remote-tracking branch 'origin/master' into develop 2023-12-12 09:32:06 +00:00
yuezp
9c857728c6 [Keyboard] Add meetlab/kalice (#22207)
Co-authored-by: “yuezp” <“yuezpchn@126.com”>
2023-12-12 01:31:36 -08:00
casuanoob
06b9925156 Bastard Keyboards: Add support for Dilemma v2 (3x5+3) (#22185)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Charly Delay <charly@delay.gg>
2023-12-12 01:22:59 -08:00
QMK Bot
faf9c38c26 Merge remote-tracking branch 'origin/master' into develop 2023-12-12 08:50:20 +00:00
Marek128b
1c68cd09b8 [Keyboard] add ergosplit44 v1 (#22344)
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-12-12 00:48:59 -08:00
QMK Bot
967a6138ac Merge remote-tracking branch 'origin/master' into develop 2023-12-12 08:48:57 +00:00
jpe230
e2d6187339 [Keyboard] Add Big Knob board (#22292)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-12-12 00:48:24 -08:00
Coom
fb3c91375c [Keyboard] zk3mod : added OLED (#22303)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-12-12 00:44:14 -08:00
Álvaro A. Volpato
1f9b653f58 [Keyboard] Add Iron180 V2 PCB support (#22314)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-12-12 00:41:41 -08:00
Ryan
e648155113 Rename RGBLED_NUM -> RGBLIGHT_LED_COUNT (#22570) 2023-12-12 15:30:08 +11:00
QMK Bot
3c7e9a6827 Merge remote-tracking branch 'origin/master' into develop 2023-12-12 03:21:42 +00:00
TW59420
c4a2bea0e6 [Keyboard] add mmk_3 (#22569)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2023-12-11 19:21:09 -08:00
QMK Bot
d6f207dcd6 Merge remote-tracking branch 'origin/master' into develop 2023-12-12 03:07:10 +00:00
rhmokey
ae6f6c3365 [Keyboard] add luckycat70 (#22622)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: zvecr <git@zvecr.com>
2023-12-11 19:06:42 -08:00
QMK Bot
8352f589c7 Merge remote-tracking branch 'origin/master' into develop 2023-12-12 03:02:58 +00:00
Marc Nause
7ae0f7caf1 Fix compile error in VLC keymap for Anavi Macropad8 (#22644) 2023-12-11 19:02:28 -08:00
QMK Bot
dc6cf643f3 Merge remote-tracking branch 'origin/master' into develop 2023-12-12 03:00:55 +00:00
yuezp
e6b53af38e [Keyboard] Add ENTER80 (#22632)
Co-authored-by: “yuezp” <“yuezpchn@126.com”>
2023-12-11 19:00:26 -08:00
QMK Bot
e2472ee8f1 Merge remote-tracking branch 'origin/master' into develop 2023-12-12 02:12:41 +00:00
kopibeng
432789dc22 [Keyboard] Add KLC x TGR Lena (#22629)
Co-authored-by: jack <0x6a73@protonmail.com>
2023-12-11 18:12:03 -08:00
Joel Challis
4682226e20 Keymap introspection for Dip Switches (#22543) 2023-12-11 23:06:18 +00:00
QMK Bot
d85f954d30 Merge remote-tracking branch 'origin/master' into develop 2023-12-11 09:07:58 +00:00
kopibeng
ae18481f50 Add MNK60_STM32 (#22429)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-12-11 01:07:26 -08:00
Joel Challis
42245651e7 Align Dip Switch feature (#22625) 2023-12-08 15:57:34 +00:00
QMK Bot
e471cb80cb Merge remote-tracking branch 'origin/master' into develop 2023-12-08 09:55:53 +00:00
Joel Challis
0f341dfdd3 Fix TARGET when using converters (#22591) 2023-12-08 20:55:24 +11:00
Ryan
24511d31b6 LED/RGB Matrix: add header for drivers (#22628) 2023-12-08 16:54:47 +11:00
SmollChungus
2d3f2e92d8 consolidate firmware folder in smoll parent folder (#22401)
* consolidate firmware folder in smoll parent folder

* add moved keyboards to mapping

* typo fix

* typo..

* Update rules.mk

fix default folder lefty

* Update data/mappings/keyboard_aliases.hjson

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

---------

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-12-08 04:36:38 +00:00
QMK Bot
e394c06d14 Merge remote-tracking branch 'origin/master' into develop 2023-12-08 03:44:02 +00:00
spacehangover
a09fdd4190 WWA Keyboards (#22612) 2023-12-07 19:43:16 -08:00
Cipulot
81cedf5fa5 Add ADC support STM32L4xx and STM32G4xx series MCUs (#22341)
* Update analog.c

* Changes to remove errors in compile

* Update analog.c

Fix for RP2040 build errors

* Revert "Merge branch 'adc-add-stm32l4xx-stm32g4xx' of https://github.com/Cipulot/qmk_firmware into adc-add-stm32l4xx-stm32g4xx"

This reverts commit b11c297078, reversing
changes made to ed3051f941.

* Update analog.c

Attempt fix for formatting CI error

* Update platforms/chibios/drivers/analog.c

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

* Update platforms/chibios/drivers/analog.c

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

* Update platforms/chibios/drivers/analog.c

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

---------

Co-authored-by: Joel Challis <git@zvecr.com>
2023-12-08 01:26:44 +00:00
QMK Bot
fc61fd9ce3 Merge remote-tracking branch 'origin/master' into develop 2023-12-08 00:15:11 +00:00
Joel Challis
897e33599e Drop LED fixes (#22624) 2023-12-08 00:14:42 +00:00
QMK Bot
6f78b0daf0 Merge remote-tracking branch 'origin/master' into develop 2023-12-07 20:26:19 +00:00
jack
a4f990a431 Fixup helix/rev3_5rows (#22623) 2023-12-07 13:25:46 -07:00
QMK Bot
b4dba3cfb1 Merge remote-tracking branch 'origin/master' into develop 2023-12-06 17:40:28 +00:00
yiancar
834fb0b1fe [Keyboard] Add Argyle (#22607)
* Argyle initial commit

* Update config.h

* Update config.h

* fixed

* Use json

* Update keyboards/argyle/info.json

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

* Update keyboards/argyle/info.json

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

* Update keyboards/argyle/info.json

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

* Update keyboards/argyle/readme.md

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

* Update keyboards/argyle/info.json

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

* Update keyboards/argyle/keymaps/via/rules.mk

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

* Update keyboards/argyle/keymaps/iso/keymap.c

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

* Update keyboards/argyle/info.json

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

* Update info.json

* format json

* Update keyboards/argyle/rules.mk

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

* Update keyboards/argyle/info.json

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

* Update keyboards/argyle/readme.md

Co-authored-by: Tom Barnes <barnestom@me.com>

---------

Co-authored-by: yiancar <yiancar@gmail.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Tom Barnes <barnestom@me.com>
2023-12-06 10:39:59 -07:00
QMK Bot
53c262de1b Merge remote-tracking branch 'origin/master' into develop 2023-12-06 16:28:29 +00:00
leah-splitkb
5ddbf60f38 Fix RGB Matrix max brightness for several splitkb.com keyboards (#22621) 2023-12-06 16:27:52 +00:00
David Hoelscher
18630b741e Add QP support for smaller OLED displays and SSD1306 (#22358) 2023-12-06 13:06:58 +00:00
QMK Bot
8ba46dcf61 Merge remote-tracking branch 'origin/master' into develop 2023-12-06 07:00:10 +00:00
Sergey Vlasov
958215e9d6 Fix more qmk generate-api fallout from userspace support (#22619) 2023-12-06 17:59:42 +11:00
QMK Bot
4e836dd6cf Merge remote-tracking branch 'origin/master' into develop 2023-12-06 04:56:04 +00:00
Ryan
f1043e3a92 Fix JSON keymap URLs generated by the API (#22618) 2023-12-06 15:55:35 +11:00
QMK Bot
51ce4ae8ad Merge remote-tracking branch 'origin/master' into develop 2023-12-06 03:52:28 +00:00
Ryan
b6fbed3dc3 LED drivers: change "TWI" to "I2C" (#22617) 2023-12-05 19:52:18 -08:00
Less/Rikki
c7eb952198 [Keyboard] fruitykeeb/fruitbar/r1 (#22616)
Co-authored-by: Brandon Lewis <bslewis00@gmail.com>
2023-12-05 19:51:59 -08:00
QMK Bot
8b022cefc5 Merge remote-tracking branch 'origin/master' into develop 2023-12-06 03:35:11 +00:00
Ramon Imbao
6c2c211d8a [Keyboard] Add Relapse-KB OR87 (#22458)
* Add relapsekb h87nu

* Change name

* Add missing license headers

* Apply suggestions from code review

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

* Remove config.h

* Update keyboards/relapsekb/or87/readme.md

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

---------

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-12-05 20:34:36 -07:00
era
11aa512c85 [Keyboard] Remove era/klein (#22384)
* Remove era/klein

era/klein is replaced by sirind/era/klein_sd

* Add an entry to data/mappings/keyboard_aliases.hjson

Add an entry to data/mappings/keyboard_aliases.hjson
2023-12-05 15:57:07 -07:00
QMK Bot
1b56428e52 Merge remote-tracking branch 'origin/master' into develop 2023-12-05 22:52:50 +00:00
Ivan Gromov
aa8e2065f1 [Keyboard] Add kt60HS-T (#22413)
* Create keymap.c

* Create keymap.c

* Create rules.mk

* Add files via upload

* Update keyboards/keyten/kt60hs_t/keymaps/default/keymap.c

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

* Update keyboards/keyten/kt60hs_t/readme.md

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

* Update keyboards/keyten/kt60hs_t/info.json

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

* Update keyboards/keyten/kt60hs_t/keymaps/via/keymap.c

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

* Update keyboards/keyten/kt60hs_t/readme.md

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

* Update keyboards/keyten/kt60hs_t/info.json

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

* Update info.json after qmk format-json

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update keyboards/keyten/kt60hs_t/info.json

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

* Update keyboards/keyten/kt60hs_t/readme.md

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

---------

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-12-05 15:52:19 -07:00
QMK Bot
1ffb9092eb Merge remote-tracking branch 'origin/master' into develop 2023-12-05 19:06:44 +00:00
atti
87eaab600c Fixed non-executable codes in the documentation (#22600) 2023-12-05 11:06:06 -08:00
QMK Bot
c286ab90f9 Merge remote-tracking branch 'origin/master' into develop 2023-12-05 15:41:35 +00:00
leah-splitkb
0d36977f3e Fix Helix encoder direction (#22614) 2023-12-06 02:41:02 +11:00
QMK Bot
ca2e424b75 Merge remote-tracking branch 'origin/master' into develop 2023-12-05 13:32:43 +00:00
Joel Challis
bba5c14933 Avoid exceptions when layouts contain OOB matrix values (#22609) 2023-12-05 13:32:07 +00:00
Ryan
17f36a21bf Rework RGBLight driver system (#22529) 2023-12-05 22:49:14 +11:00
Joel Challis
2acb426b8e Remove "empty" files (#22603) 2023-12-05 08:37:00 +00:00
QMK Bot
92cf493d7f Merge remote-tracking branch 'origin/master' into develop 2023-12-05 08:30:41 +00:00
Less/Rikki
229633395b [Keyboard] eyeohdesigns/humble40 (#22421)
Co-authored-by: joedinkle <eodkeyboards@gmail.com>
2023-12-05 00:30:28 -08:00
Markus Knutsson
8236f59fa3 [Keyboard] Add Chameleon keyboard (#22427)
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-12-05 00:30:07 -08:00
QMK Bot
7317680904 Merge remote-tracking branch 'origin/master' into develop 2023-12-05 08:29:41 +00:00
Dam Vu Duy
eb0ce41e78 [Keyboard] Add Coban Pad 9A (#22456) 2023-12-05 00:29:12 -08:00
QMK Bot
3208f5fd1a Merge remote-tracking branch 'origin/master' into develop 2023-12-05 08:19:55 +00:00
MakotoKurauchi
65fb7224d5 [Keyboard][Helix] enable encoder map (#22488)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-12-05 00:19:24 -08:00
QMK Bot
9e60a81263 Merge remote-tracking branch 'origin/master' into develop 2023-12-05 07:43:42 +00:00
Leon Anavi
6fb9de6cbb [Keyboard] Add ANAVI Arrows (#22454)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-12-04 23:43:14 -08:00
QMK Bot
05787bc381 Merge remote-tracking branch 'origin/master' into develop 2023-12-05 07:15:25 +00:00
kopibeng
61708d60fb Update MNK65_STM32 (#22430)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2023-12-04 23:14:52 -08:00
QMK Bot
158d99b738 Merge remote-tracking branch 'origin/master' into develop 2023-12-05 05:56:48 +00:00
Wilhelm Schuster
6973d6d053 Fix AD5258 I2C address for Leopold keyboards (#22554)
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-12-04 21:56:19 -08:00
QMK Bot
18aa7d1244 Merge remote-tracking branch 'origin/master' into develop 2023-12-05 05:19:46 +00:00
Bram Inniger
b9a3bdb982 [Keyboard] Fix oled layer display order for Aurora boards (#22521) 2023-12-04 21:19:14 -08:00
QMK Bot
6537794989 Merge remote-tracking branch 'origin/master' into develop 2023-12-05 03:54:11 +00:00
Less/Rikki
88653c53ed [Keyboard] fruitykeeb/fruitbar/r2 (#22580)
Co-authored-by: ojthetiny <ba6sti6@gmail.com>
2023-12-04 19:53:42 -08:00
QMK Bot
99ab4393de Merge remote-tracking branch 'origin/master' into develop 2023-12-04 23:30:31 +00:00
Duncan Sutherland
74ae2286a6 Fix erroneous commas in info.json files (#21712) 2023-12-04 23:30:02 +00:00
QMK Bot
c9d57e9014 Merge remote-tracking branch 'origin/master' into develop 2023-12-04 18:56:04 +00:00
yuezp
525fe9be96 [Keyboard] Add TG67 (#22592)
Co-authored-by: “yuezp” <“yuezpchn@126.com”>
2023-12-04 11:55:34 -07:00
QMK Bot
8c4b0827ac Merge remote-tracking branch 'origin/master' into develop 2023-12-04 15:53:32 +00:00
Joel Challis
6042094c75 Pin actions/labeler to v4 2023-12-04 15:53:03 +00:00
zvecr
daa5afcf1d Merge remote-tracking branch 'origin/master' into develop 2023-12-04 13:58:34 +00:00
yiancar
7f67256047 Add EE-AT and move W1-AT under geonworks (#22526)
* Add EE-AT and move W1-AT under geonworks
Co-authored-by: yiancar <yiancar@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-12-04 09:07:37 +00:00
yiancar
c3773587e9 Add Event Horizon Keyboard (#22515)
Co-authored-by: yiancar <yiancar@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-12-04 08:57:28 +00:00
Ryan
358bc8eac8 LED drivers: refactor page selection (#22518) 2023-12-04 17:52:40 +11:00
Joel Challis
131811b3d7 Initial support for CSTM65 (#22513) 2023-12-04 03:07:14 +00:00
Ryan
c1b385ce0f Sort defaults.hjson (#22587) 2023-12-04 12:04:21 +11:00
Ryan
33ff722ec8 Sort definitions.jsonschema (#22588) 2023-12-04 12:04:09 +11:00
QMK Bot
3a2aec47b7 Merge remote-tracking branch 'origin/master' into develop 2023-12-04 00:58:12 +00:00
jack
8895b13583 Documentation regarding user code removal/acceptance (#22507) 2023-12-04 00:57:42 +00:00
Dasky
86f073a8ea Add basic presence check for cirque trackpad. (#22546) 2023-12-04 00:14:28 +00:00
JuanoD
ce81801480 Add latam spanish headers (#22542) 2023-12-04 00:13:27 +00:00
QMK Bot
57db82445e Merge remote-tracking branch 'origin/master' into develop 2023-12-03 01:27:23 +00:00
Tom Barnes
37c2dd7c65 Helix rev3_5rows rgbmatrix patch (#22594) 2023-12-02 17:26:53 -08:00
QMK Bot
ceb15bf5db Merge remote-tracking branch 'origin/master' into develop 2023-12-02 23:58:44 +00:00
Joel Challis
98f4e9b837 Fix qmk doctor not finding binaries on Windows (#22593) 2023-12-02 23:58:12 +00:00
QMK Bot
c7a58bf280 Merge remote-tracking branch 'origin/master' into develop 2023-12-02 22:47:08 +00:00
Nick Brassel
01eed8d5d8 Dedup the list of tested userspace paths. (#22599) 2023-12-03 09:46:37 +11:00
QMK Bot
b45b3aaec7 Merge remote-tracking branch 'origin/master' into develop 2023-12-02 21:51:04 +00:00
Purdea Andrei
b68e89f846 Don't print error message when there are no row pins and no col pins (#20104)
* Don't print error message when there are no row pins and no col pins

This error message could be triggered for example if MATRIX_IO_DELAY is
configured in config.h, but the matrix is a custom one. The custom matrix
can still call back to existing delay functions that make use of the
MATRIX_IO_DELAY macro. In this case 'matrix_pins' in info_data will be true,
but there will be no 'direct' 'cols' or 'rows' in info_data['matrix_pins'],
and without this commit it would trigger an invalid error.

* Update lib/python/qmk/info.py

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

---------

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2023-12-02 21:50:34 +00:00
QMK Bot
07e2b645ab Merge remote-tracking branch 'origin/master' into develop 2023-12-01 14:06:15 +00:00
Ryan
afa0eab374 Fix a bunch of CLI warnings (#22589) 2023-12-01 14:05:46 +00:00
QMK Bot
4be3abc39e Merge remote-tracking branch 'origin/master' into develop 2023-12-01 12:08:20 +00:00
Álvaro A. Volpato
28dc7ba6a8 Fix animation range on M75H (#22586) 2023-12-01 12:07:48 +00:00
QMK Bot
e0e621ad6f Merge remote-tracking branch 'origin/master' into develop 2023-12-01 10:07:56 +00:00
yuezp
5368ddbf3d add keyboard bestway (#22498)
Co-authored-by: “yuezp” <“yuezpchn@126.com”>
2023-12-01 02:07:28 -08:00
Dalius Dobravolskas
cc3c3ace0c Feature: joystick weights (#21883)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2023-12-01 01:30:36 -08:00
QMK Bot
f2f99739b3 Merge remote-tracking branch 'origin/master' into develop 2023-12-01 09:04:25 +00:00
Duncan Sutherland
67559c7d06 revoke community_layouts from keebio/wtf60 (#22502) 2023-12-01 01:03:54 -08:00
QMK Bot
9b0fc99076 Merge remote-tracking branch 'origin/master' into develop 2023-11-30 22:45:50 +00:00
Jay Greco
80f91fee40 nullbitsco/snap: reduce size of bongo_reactive (#22571) 2023-11-30 15:45:21 -07:00
QMK Bot
091310e75e Merge remote-tracking branch 'origin/master' into develop 2023-11-30 09:28:22 +00:00
Nick Brassel
024b4070c3 Fixup --no-temp for qmk mass-compile. (#22582) 2023-11-30 20:27:02 +11:00
Ryan
099eaefb40 Add APA102_LED_COUNT define (#22530) 2023-11-30 10:19:41 +11:00
Ryan
2886c335a0 keycapsss/plaid_pad: switch to encoder map (#22474) 2023-11-30 10:19:17 +11:00
Pete Neisen
7cc90c234f Converted RGB matrix to use last_input_activity_elapsed(). (#21687)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2023-11-30 09:38:06 +11:00
QMK Bot
cfbbb503a4 Merge remote-tracking branch 'origin/master' into develop 2023-11-29 07:47:35 +00:00
Álvaro A. Volpato
93127df5d4 Add Smith and Rune Magnus (#22153)
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-11-28 23:47:08 -08:00
QMK Bot
8d308d56e3 Merge remote-tracking branch 'origin/master' into develop 2023-11-29 07:46:44 +00:00
Álvaro A. Volpato
c8a28e8e9b Add Magnum Ergo 1 by dark (#22139)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-11-28 23:46:15 -08:00
Alin Marin Elena
e3d367df8a Add 5x13 and 6x13 ortho community layouts (#22315)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Alin Marin Elena <alin@elena.space>
2023-11-28 22:56:17 -08:00
Stefan Kerkmann
36ad597e15 lib: chibios-contrib: sync with chibios-21.11.x (#22560)
This contains commit from da78eb3759b8..9d7a7f904ed1:

    9d7a7f90 Merge pull request #382 from KarlK90/fix/rp2040-i2c-speeds
    70119934 Merge pull request #383 from
             KarlK90/fix/rp2040-usb-get-status-request
    1a1bbe6c rp2040: usb: fix usb_lld_get_status functions
    7d9212dd rp2040: i2c: fix speed calculation
    fb67e502 Merge pull request #377 from 1Conan/sn32_fix_registry
    e72939ef SN32: update registry
    5b4836ca Merge pull request #376 from dexter93/sn32_usb_v2
    5ded9de9 sn32: usb: do NOT clear interrupt status until handled
    Leftover Sonix reference code cleanup. Sometimes when there is
    traffic on more than 1 ep's packets would be dropped before they
    could be handled. Clearing the status flags after handling them
    takes care of it.
    e9a4a512 sn32: usb: only activate interrupts on lld start
    e4a35d1c sn32: fix host remote wakeup
2023-11-29 07:01:16 +01:00
QMK Bot
e923efcd56 Merge remote-tracking branch 'origin/master' into develop 2023-11-29 03:33:32 +00:00
Joe Scotto
4228f55551 Add ScottoWing handwired keyboard (#22506)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-11-28 19:33:17 -08:00
Alabahuy
1e5151bf63 add tokki (#22463)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-11-28 19:32:58 -08:00
QMK Bot
a886d7e3dd Merge remote-tracking branch 'origin/master' into develop 2023-11-29 03:30:41 +00:00
Duncan Sutherland
3024b05cbb cablecardesigns/phoenix: correct layout data (#22517) 2023-11-28 19:30:12 -08:00
QMK Bot
6524d5354a Merge remote-tracking branch 'origin/master' into develop 2023-11-29 02:49:27 +00:00
猫咪恐慌
0fb3aaec8e [Doc]: Correct Markdown syntax errors. (#22511) 2023-11-29 02:48:47 +00:00
QMK Bot
e90874c382 Merge remote-tracking branch 'origin/master' into develop 2023-11-29 02:46:47 +00:00
Nick Brassel
b7df75e47f Fixup compilation with qmk compile -kb zzz -km all. (#22568) 2023-11-29 13:46:10 +11:00
QMK Bot
6bba3c6578 Merge remote-tracking branch 'origin/master' into develop 2023-11-29 02:24:16 +00:00
Less/Rikki
81d601b725 refactor: projectcain/vault35 (#22558) 2023-11-28 18:24:02 -08:00
Dasky
5c20a84540 Small QP surface docs update (#22567) 2023-11-28 18:23:47 -08:00
QMK Bot
75a43ddf55 Merge remote-tracking branch 'origin/master' into develop 2023-11-29 02:00:53 +00:00
dependabot[bot]
27befbfad7 Bump JamesIves/github-pages-deploy-action from 4.4.3 to 4.5.0 (#22559)
Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.4.3 to 4.5.0.
- [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases)
- [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.4.3...v4.5.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-29 02:00:24 +00:00
QMK Bot
a2c745cae8 Merge remote-tracking branch 'origin/master' into develop 2023-11-28 14:07:50 +00:00
Nick Brassel
049e964e61 Attempt to fix configurator. (#22555) 2023-11-28 14:07:21 +00:00
leah-splitkb
2450fe28ee Add Imera converter (#22419) 2023-11-28 17:53:47 +11:00
Nick Brassel
ea8d2ffe31 Branch point for 20231126 Breaking Change 2023-11-28 16:42:43 +11:00
Nick Brassel
0115951de1 develop -> master, 2023q4 edition 2023-11-28 16:40:47 +11:00
Nick Brassel
4d99e0a23c Remove notice about develop. 2023-11-28 15:56:54 +11:00
Nick Brassel
07e7dd8fc1 develop 2023q4 changelog (#22552)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-11-28 15:51:56 +11:00
Nick Brassel
5501e804ff QMK Userspace (#22222)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-11-28 07:53:43 +11:00
Drashna Jaelre
094357c403 Fix missed shutdown callbacks (#22549) 2023-11-27 15:39:17 +11:00
フィルターペーパー
cc4a52eb93 Remove symbolic linked userspace folder (#22548) 2023-11-27 12:49:44 +11:00
Joel Challis
1ed03f498f Remove userspace keymaps (#22544) 2023-11-27 05:36:45 +11:00
Joel Challis
4908d4b1ca Stub out community layout directory structure (#22545) 2023-11-27 05:31:20 +11:00
db
65b5969ed5 New RGB Animations - 4 "Starlight" Animation Variations (#22212) 2023-11-26 23:07:32 +11:00
Nick Brassel
f96a7bbd63 Cater for ECC failures in EFL wear-leveling. (#19749)
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2023-11-26 22:59:38 +11:00
Drashna Jaelre
3ef06aa732 Improve and Cleanup Shutdown callbacks (#21060)
Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
2023-11-26 22:59:18 +11:00
Ryan
4601f339e4 V-USB: implement NKRO (#22398) 2023-11-26 22:50:53 +11:00
Ryan
cbf538aaaa V-USB: Add generic send_report() function (#22323) 2023-11-26 22:50:21 +11:00
QMK Bot
3a74fa5bf7 Merge remote-tracking branch 'origin/master' into develop 2023-11-23 05:08:37 +00:00
James Young
0379d1f59e DC60: Fix 2u Backspace Support (#22533) 2023-11-23 05:08:07 +00:00
QMK Bot
bf0d1fde5d Merge remote-tracking branch 'origin/master' into develop 2023-11-22 22:13:48 +00:00
gskygithub
98013e25c6 [Keyboard] darkproject/kd83a_bfg_edition (#18416)
* Add files via upload

* [keyboard]

* [Keyboard]

* Delete flash_spi.c

* Delete flash_spi.h

* Delete wb32_spi_master.c

* Delete wb32_spi_master.h

* [Keyboard]

* Resolved requested changes

* Resolved requested changes

* Changed rules.mk file accordingly.

* Resolved changes accordingly.

* Update config.h file and rules.mk file

* Removed eeprom_flash.c file

* Update default/keymap.c file

* Delete keyboards/darkproject/kd83a_bfg_edition directory

* Add keyboard

* Add keyboard

* Delete darkproject/kd83a_bfg_edition directory

* Resolved Changes

* Resolved requested changes

* keyboard

* Add keyboard

* Delete keyboard

* Add keyboard

* Delete keyboards/darkproject/kd87a_bfg_edition directory

* update keymap.c file

* update via/keymap.c, config.h and kd83a_bfg_edition.c files

* Delete keymap.c

* Update via/keymap.c, config.h and kd83a_bfg_edition.c files

* update config.h file

* update keymap.c file

* update keymap.c file

* update config.h

* update kd83a_bfg_edition.c

* Resolved requested changes.

* Delete folder which was added accidentally.

* Update keyboards/darkproject/kd83a_bfg_edition/config.h

* Update keyboards/darkproject/kd83a_bfg_edition/keymaps/via/keymap.c

* Update keyboards/darkproject/kd83a_bfg_edition/keymaps/via/keymap.c

* Update keyboards/darkproject/kd83a_bfg_edition/keymaps/via/keymap.c

* Update keyboards/darkproject/kd83a_bfg_edition/keymaps/via/keymap.c

* Update keyboards/darkproject/kd83a_bfg_edition/info.json

* Update keyboards/darkproject/kd83a_bfg_edition/rules.mk

* Update keyboards/darkproject/kd83a_bfg_edition/info.json

* update info.json file

* update config.h file

* Updated requested changes

* update readme.md

* Resolved requested changes

* Update info.json file

* Delete kd83a_bfg_edition.h

* Delete readme.md in default folder

* Update info.json file

* update info.json

* Updated changes

* Updated changes

* Resolved requested changes

* Resolved requested changes
2023-11-22 14:13:16 -08:00
Joel Challis
b35bac6afb Remove unnecessary driver counts (#22435) 2023-11-22 21:37:32 +00:00
Joel Challis
a0a6820c1b Migrate some dip switch config to info.json (#22437) 2023-11-23 08:33:59 +11:00
Nick Brassel
3a5e4253fc Add simpler method for relocating functions to RAM. (#21804) 2023-11-22 12:08:52 +11:00
Nick Brassel
0fcd13f552 [CLI] Remove duplicates from search results (#22528) 2023-11-22 12:08:26 +11:00
Joel Challis
7ae826476e Move BACKLIGHT_PWM_PERIOD to correct docs section (#22480) 2023-11-22 11:41:19 +11:00
Nick Brassel
46b996a55e CLI parallel search updates (#22525) 2023-11-22 11:14:34 +11:00
Sergey Vlasov
7e27d72cbc Fix qmk find failure due to circular imports (#22523)
There was an import cycle in the Python modules:

  - `qmk.build_targets` imported `qmk.cli.generate.compilation_database`;
  - importing `qmk.cli.generate.compilation_database` requires
    initializing `qmk.cli` first;
  - the initialization of `qmk.cli` imported the modules for all CLI
    commands;
  - `qmk.cli.compile` imported `qmk.build_targets`.

This cycle did not matter in most cases, because `qmk.cli` was imported
first, and in that case importing `qmk.cli.generate.compilation_database`
did not trigger the initialization of `qmk.cli` again.  However, there was
one corner case when `qmk.bulld_targets` was getting imported first:

  - The `qmk find` command uses the `multiprocessing` module.
  - The `multiprocessing` module uses the `spawn` start method on macOS
    and Windows.
  - When the `spawn` method is used, the child processes initialize
    without any Python modules loaded, and the required modules are loaded
    on demand by the `pickle` module when receiving the serialized objects
    from the main process.

The result was that the `qmk find` command did not work properly on macOS
(and probably Windows too); it reported exceptions like this:

    ImportError: cannot import name 'KeyboardKeymapBuildTarget' from partially initialized module 'qmk.build_targets' (most likely due to a circular import)

Moving the offending `qmk.cli.generate.compilation_database` import into
the method which actually uses it fixes the problem.
2023-11-21 15:05:29 +00:00
Dasky
68722d35a3 Azoteq IQS5xx support (#22280) 2023-11-20 16:25:35 +00:00
Ryan
dda6e7fb36 LED drivers: register naming cleanups (#22436) 2023-11-20 15:48:23 +00:00
Joel Challis
e279c78ba3 Enable linking of encoders to switch within layout macros (#22264) 2023-11-20 15:41:48 +00:00
Sergey Vlasov
62cca5c43a qmk find: Fix failure with multiple filters (#22497)
When multiple `-f FILTER` options were specified, `qmk find` did not
return anything at all instead of printing the list of entries that
matched all of the specified filters.

The problem was that the statement in `_filter_keymap_targets()` that
filled `targets` had a wrong indent and therefore was executed for every
filter instead of only once after applying all filters, and
`valid_keymaps` was actually an iterator and therefore could be used
only once.  Moving the statement outside of the loop fixes the problem.
2023-11-19 08:26:00 +11:00
QMK Bot
bf3a88ab57 Merge remote-tracking branch 'origin/master' into develop 2023-11-16 17:49:12 +00:00
フィルターペーパー
a6521b8521 [Doc] Improve converter references (#21801) 2023-11-16 17:48:24 +00:00
QMK Bot
67a87f67a0 Merge remote-tracking branch 'origin/master' into develop 2023-11-16 16:54:46 +00:00
leyew
1e4f7aa029 [Keyboard] Add dnworks 997pt3 (#22466)
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-11-16 09:54:13 -07:00
QMK Bot
cc7542b917 Merge remote-tracking branch 'origin/master' into develop 2023-11-15 15:23:35 +00:00
Le Zhang
adcc4d376c Add leonardo build target for leonardo + usb2.0 shield based projects (#22243) 2023-11-15 15:23:03 +00:00
Nick Brassel
4938210711 CLI refactoring for common build target APIs (#22221) 2023-11-15 16:24:54 +11:00
QMK Bot
c4d3521ba6 Merge remote-tracking branch 'origin/master' into develop 2023-11-14 08:11:41 +00:00
leyew
d7b44239c2 [Keyboard] Add Eden (#22467)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-11-14 01:11:12 -07:00
QMK Bot
56daf7e545 Merge remote-tracking branch 'origin/master' into develop 2023-11-14 02:16:30 +00:00
Nick Brassel
5c22706294 Update stale.yml 2023-11-14 13:15:52 +11:00
QMK Bot
5da65c5cd4 Merge remote-tracking branch 'origin/master' into develop 2023-11-14 02:12:48 +00:00
Nick Brassel
ba62db19e7 Update stale.yml (#22473) 2023-11-14 13:12:17 +11:00
QMK Bot
79a6419dee Merge remote-tracking branch 'origin/master' into develop 2023-11-14 01:49:49 +00:00
cole smith
44062b5056 Bs equals (#21690)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: jack <0x6A73@pm.me>
2023-11-14 12:49:15 +11:00
Joel Challis
02d3b233ab chibios: disable RWX segment warning on newer GNU lds (#22471) 2023-11-13 23:45:40 +00:00
Nick Brassel
4c625d8286 Revert "chibios: disable RWX segment warning on newer GNU lds (#22007)" (#22469)
This reverts commit de3c42125b.
2023-11-13 22:41:12 +00:00
Joel Challis
1efc79063c Migrate some EEPROM config to info.json (#22434) 2023-11-14 09:30:19 +11:00
Thomas Weißschuh
de3c42125b chibios: disable RWX segment warning on newer GNU lds (#22007) 2023-11-13 22:29:12 +00:00
QMK Bot
970e0b18a2 Merge remote-tracking branch 'origin/master' into develop 2023-11-13 20:56:16 +00:00
precondition
50844a8e67 Fix typos: key-modifer→key-modifier and interacton→interaction (#22464) 2023-11-13 20:55:45 +00:00
QMK Bot
67d2bc5b3a Merge remote-tracking branch 'origin/master' into develop 2023-11-13 02:03:27 +00:00
Duncan Sutherland
56b6b28fe9 add 68_ansi Community Layout to nebula68b (#22433) 2023-11-12 19:02:46 -07:00
Joel Challis
e884e42ce9 Generalise ADC driver source inclusion (#22448) 2023-11-12 22:30:27 +00:00
Ryan
786ebf8760 Remove requirement for keymap_steno.h include in keymaps (#22423)
* Remove requirement for `keymap_steno.h` include in keymaps

* Add back keymap_steno.h with a note for the time being
2023-11-12 18:25:46 +11:00
Ryan
87d69aebbb Slight refactor of joystick axis type into typedef (#22445) 2023-11-12 18:25:18 +11:00
QMK Bot
b7a1004b61 Merge remote-tracking branch 'origin/master' into develop 2023-11-12 05:31:01 +00:00
John Barbero
c2326c05c0 [Keyboard] Fixes to make snes_macropad play nicer with qmk configurator (#22432)
* [Keyboard] Change default implementation for get_layer_name_user

Will now show the layer number instead of "Unknown", since this is
what will be shown if QMK Configurator is used to compile the
firmware.

* [Keyboard] Update the layout info

This makes it look sort of like a macropad + gamepad rather than an 4x6
ortholinear keyboard.

* [Keyboard] Fix default implementation of get_layer_name_user

Based on feedback from code review the implementation was swapped in
favor of using get_u8_str. This implied a change to the argument type
from int to uint8_t, which cascaded into the existing keymaps. (This
made sense in general, since the return type of get_highest_layer is
also a uint8_t.)
2023-11-11 22:30:31 -07:00
QMK Bot
112a51db9c Merge remote-tracking branch 'origin/master' into develop 2023-11-12 05:20:13 +00:00
Duncan Sutherland
0189c485b9 studiokestra/line_tkl: correct layout data (#22455)
* fix `layouts` data

* add EoF
2023-11-11 22:19:43 -07:00
QMK Bot
2f28c6df6d Merge remote-tracking branch 'origin/master' into develop 2023-11-11 19:08:55 +00:00
jonylee@hfd
935c894f83 add 5087 keyboard (#20557)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2023-11-11 11:08:26 -08:00
Less/Rikki
2e1a27da60 fix: make clicky delay silent (#21866) 2023-11-11 21:55:47 +11:00
QMK Bot
d8176fb0f2 Merge remote-tracking branch 'origin/master' into develop 2023-11-11 09:51:03 +00:00
Nick Brassel
211fbbd16d Add qmk license-check developer-level CLI command. (#22075) 2023-11-11 20:50:33 +11:00
jack
1ddc2cbeb9 Fixup snes_macropad on develop (#22444) 2023-11-11 07:26:26 +00:00
Ryan
76dc52c5c8 snled27351: fix missing i2c_init() (#22446) 2023-11-11 14:09:03 +11:00
QMK Bot
4a98466ef3 Merge remote-tracking branch 'origin/master' into develop 2023-11-10 21:39:30 +00:00
Maria
6876fbe51d [Keyboard] Add MariOrion v2.5 (#22273)
* Pushed MariOrion v2.5 to the branch. Prod and proto version added.

* Pushed MariOrion v2.5 to the branch. Prod and proto version added.

* Proper addition of layout options

Addition of split bs rshift tsangan layout options.

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

* Merge branch 'toril940mariorion_v25' of github.com:toril940/qmk_firmware into toril940mariorion_v25

* Merge branch 'toril940mariorion_v25' of github.com:toril940/qmk_firmware into toril940mariorion_v25

* Update keyboards/mariorion_v25/proto/keymaps/via/keymap.c

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

* Update keyboards/mariorion_v25/proto/keymaps/default/keymap.c

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

* Updated readme.md with more information regarding make commands, and proto vs prod.

* Update keyboards/mariorion_v25/prod/keymaps/via/keymap.c

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

* Update keyboards/mariorion_v25/prod/keymaps/default/keymap.c

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

* Update keyboards/mariorion_v25/prod/info.json

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

* Amended some changes to info.json - community layouts changed from scope to array.

* Update keyboards/mariorion_v25/readme.md

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

* Revert keyboards/gray_studio/think65/solder/solder.c

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

* Revert keyboards/gray_studio/think65/solder/solder.c

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

* Revert keyboards/gray_studio/think65/solder/solder.c

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

* Removed via.json from the via keymaps. Replaced with matrix_diagram.md. via.json file moved off to [public mariorion_v25 repo](https://github.com/toril940/orion-v25)

* Revert keyboards/gray_studio/think65/solder/solder.c

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

* Removed via.json from the via keymaps. Replaced with matrix_diagram.md. via.json file moved off to [public mariorion_v25 repo](https://github.com/toril940/orion-v25)

* Update keyboards/mariorion_v25/proto/info.json

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

* Update keyboards/mariorion_v25/rules.mk

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

* Update keyboards/mariorion_v25/proto/info.json

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

* Update keyboards/mariorion_v25/proto/info.json

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

* Update keyboards/mariorion_v25/proto/info.json

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

* Update keyboards/mariorion_v25/prod/info.json

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

* Update keyboards/mariorion_v25/prod/info.json

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

* Update keyboards/mariorion_v25/prod/info.json

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

* Update keyboards/mariorion_v25/prod/info.json

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

* Revert keyboards/gray_studio/think65/solder/solder.c

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

* Update keyboards/mariorion_v25/matrix_diagram.md

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

* Update keyboards/mariorion_v25/readme.md

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

* Update keyboards/mariorion_v25/readme.md

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

* Update keyboards/mariorion_v25/readme.md

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

* Update keyboards/mariorion_v25/readme.md

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

* Update keyboards/mariorion_v25/readme.md

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

* Update keyboards/mariorion_v25/proto/mariorion_v25.c

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

* Update keyboards/mariorion_v25/prod/mariorion_v25.c

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

* Pushed new info.json and keymap.c files.

* Pushed new info.json and keymap.c files.

* Fixes to LED driver wrt PWM definitions with STM.

* Update keyboards/mariorion_v25/prod/keymaps/via/keymap.c

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

* Update keyboards/mariorion_v25/prod/keymaps/via/keymap.c

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

* Update keyboards/mariorion_v25/prod/info.json

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

* Update keyboards/mariorion_v25/prod/mariorion_v25.c

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

* Update keyboards/mariorion_v25/proto/info.json

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

* Update keyboards/mariorion_v25/proto/config.h

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

* Update keyboards/mariorion_v25/proto/mariorion_v25.c

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

* Update keyboards/mariorion_v25/proto/mariorion_v25.c

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

* Update keyboards/mariorion_v25/proto/keymaps/via/keymap.c

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

* Update keyboards/mariorion_v25/proto/keymaps/via/keymap.c

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

* Committing a details update to readme.md.

* Committing a details update to readme.md.

* Update keyboards/mariorion_v25/prod/config.h

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

* Update keyboards/mariorion_v25/prod/mariorion_v25.c

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

* Revert "Committing a details update to readme.md."

This reverts commit 068a82a1fc.

* Committing a details update to readme.md.

* Update keyboards/mariorion_v25/halconf.h

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

* Update keyboards/mariorion_v25/mcuconf.h

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

* Update keyboards/mariorion_v25/prod/config.h

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

* Update keyboards/mariorion_v25/proto/config.h

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

* Update keyboards/mariorion_v25/halconf.h

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

* Production pictures replacing the standard ones in the readme.md :)

* waffle87 requests bundled:
- Licence headers added
- Codeblocked matrix_diagram.md
- Consolidated files where possible
- Removed excess from config.h

---------

Co-authored-by: toril940 <anastasialucas940@hotmail.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-11-10 14:39:00 -07:00
QMK Bot
2d7746609f Merge remote-tracking branch 'origin/master' into develop 2023-11-10 16:42:45 +00:00
ploopyco
38d6e9a75a Add Ploopy Madromys mouse (#21989)
Added PloopyCo madromys/adept mouse
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-11-10 16:42:15 +00:00
Joel Challis
84df69572c Infer LED DRIVER_COUNT from configured addresses (#22311) 2023-11-10 05:14:22 +00:00
Ryan
8136cf4bfb LED drivers: clean up SWx/CSy pullup/down resistor config (#22381) 2023-11-10 08:39:15 +11:00
QMK Bot
6b19a99a4f Merge remote-tracking branch 'origin/master' into develop 2023-11-09 19:57:44 +00:00
temp4gh
aee2a9d696 [Keyboard] Add alpaca/wfeclipse (#22230)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-11-09 12:57:14 -07:00
QMK Bot
28c1bc9b9f Merge remote-tracking branch 'origin/master' into develop 2023-11-09 17:54:10 +00:00
gregandcin
e5b7685e7a Update gregandcin/teaqueen (#22402) 2023-11-09 09:53:35 -08:00
QMK Bot
a28149b222 Merge remote-tracking branch 'origin/master' into develop 2023-11-09 17:53:17 +00:00
John Barbero
39d0a14258 Add SNES Macropad keyboard (#22377)
Co-authored-by: jack <0x6a73@protonmail.com>
2023-11-09 09:52:47 -08:00
QMK Bot
2568d45969 Merge remote-tracking branch 'origin/master' into develop 2023-11-09 02:03:36 +00:00
Panos Sakkos
daabe2d8c5 Update layer state of Lily58 from 'Default' to 'Base' (#22397) 2023-11-09 02:03:07 +00:00
Joel Challis
147865cf57 Migrate some common features to generic (#22403) 2023-11-09 02:01:44 +00:00
QMK Bot
4e577cbbea Merge remote-tracking branch 'origin/master' into develop 2023-11-09 01:57:51 +00:00
Matthias Liffers
0b7dba156c Fix indicator LED definition for Sofle RGB. (#22408) 2023-11-09 01:57:16 +00:00
QMK Bot
27b9dd0f98 Merge remote-tracking branch 'origin/master' into develop 2023-11-09 01:55:49 +00:00
John Barbero
10cdd00751 Fix corne keylog (#22420)
* [Keyboard] Fix bug in set_keylog function

Fixes issue where some keys would not trigger the oled to output the row
and column of a pressed key (would happen with LT(...) for my keymap)

* [Keyboard] Tiny improvement to oled_render_keylog for crkbd

Added improvement suggestion I got for another keyboard
2023-11-09 01:55:08 +00:00
QMK Bot
f56838c680 Merge remote-tracking branch 'origin/master' into develop 2023-11-08 21:01:27 +00:00
Fredrik A. Kristiansen
72f93e7fc2 Add iso85k keyboard (#22411)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-11-08 13:00:48 -08:00
Jeayo Keh
75e1a0d610 [Keyboard] Rename soda/{mango,pocket} (#22151)
Co-authored-by: Joel Challis <git@zvecr.com>
2023-11-08 10:45:24 -07:00
QMK Bot
96ea277381 Merge remote-tracking branch 'origin/master' into develop 2023-11-08 17:44:08 +00:00
Yak
64bbeff57d Fix Herringbone pro Layouts (#22317)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-11-08 10:42:08 -07:00
Less/Rikki
5a281d1ee9 feat(mechwild/clunker): new layouts (#22342) 2023-11-08 10:41:38 -07:00
QMK Bot
6f59e18efb Merge remote-tracking branch 'origin/master' into develop 2023-11-08 17:41:02 +00:00
Kelwin0313
80708a91ef [Keyboard] Add PCB Utopia88 (#22257) 2023-11-08 10:40:28 -07:00
QMK Bot
c1ea29b8e4 Merge remote-tracking branch 'origin/master' into develop 2023-11-08 17:40:04 +00:00
ai03
ebac02a7b2 [Keyboard] Add Duet Switch Tester (#22367)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-11-08 10:39:13 -07:00
QMK Bot
2be22a1323 Merge remote-tracking branch 'origin/master' into develop 2023-11-08 08:31:41 +00:00
Reibl János Dániel
2337cd1186 Add riblee handwired split keyboard (#22277) 2023-11-08 00:31:06 -08:00
QMK Bot
884f653906 Merge remote-tracking branch 'origin/master' into develop 2023-11-08 02:18:54 +00:00
Ming-Gih Lam
7324650714 Red Herring PCB support (#22409)
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2023-11-07 18:18:09 -08:00
Ryan
be66e5f2b4 WT RGB cleanups (#22379) 2023-11-08 00:58:59 +11:00
QMK Bot
1b303e0453 Merge remote-tracking branch 'origin/master' into develop 2023-11-07 00:43:44 +00:00
Leo Lou
5b25a8aa32 [Keyboard] Add Piantor Pro (#22361)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2023-11-06 17:43:41 -07:00
Duncan Sutherland
67ff0defe2 Teaqueen: correct layout data (#22406) 2023-11-06 17:43:04 -07:00
Joel Challis
3143a7597f Allow generic_features to handle subdirectories (#22400) 2023-11-04 20:33:52 +00:00
QMK Bot
c9afacccf4 Merge remote-tracking branch 'origin/master' into develop 2023-11-03 23:14:49 +00:00
Kiryl Mialeshka
ace510ffa0 docs(rgblight): fix typos (#22399) 2023-11-03 23:14:18 +00:00
QMK Bot
c6bb5b6755 Merge remote-tracking branch 'origin/master' into develop 2023-11-02 16:37:35 +00:00
ID64F
837cae95ba boardsource/unicorne - Fixed OLED layers being all set to zero (#22389) 2023-11-02 16:36:56 +00:00
Ryan
5d58534a8c LED drivers: use PACKED define from util.h (#22380) 2023-11-02 14:31:09 +11:00
Joel Challis
8ea955c72f Improve argument handling of c2json (#22170)
* Improve argument handling of c2json

* Add automagic
2023-11-01 22:37:05 +00:00
Ryan
a27bc60703 LED drivers: add defines for PWM and LED control register counts (#22383) 2023-11-01 19:13:25 +00:00
Logan Butler
0a94c2951f [Keyboard] matchstickworks/southpad - Move files to rev1, add rev2 (#21574)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-10-31 20:12:20 -07:00
Joel Challis
b31426252e Generate switch statement helpers for keycode ranges (#20059) 2023-11-01 13:11:42 +11:00
Joel Challis
fbbb221a31 Implement data driven lighting defaults (#21825) 2023-11-01 01:26:24 +00:00
Joel Challis
a19ae3d784 Add dd mapping for hardware based split handedness (#22369) 2023-11-01 00:55:48 +00:00
Ryan
b52aca0af8 Relocate LED driver init code (#22365) 2023-11-01 00:53:45 +00:00
QMK Bot
eac8e67888 Merge remote-tracking branch 'origin/master' into develop 2023-11-01 00:41:08 +00:00
era
999008f0eb [Keyboard] Add Klein_SD (#22371)
Co-authored-by: Joel Challis <git@zvecr.com>
2023-10-31 18:40:25 -06:00
QMK Bot
fccd825212 Merge remote-tracking branch 'origin/master' into develop 2023-11-01 00:18:27 +00:00
gregandcin
2192098f57 [Keyboard] Add TeaQueen (#22352)
Co-authored-by: jack <0x6a73@protonmail.com>
2023-10-31 18:17:43 -06:00
Ryan
6979794bac Add "AC Next Keyboard Layout Select" consumer usage entry (macOS Globe key) (#22256) 2023-10-31 02:19:53 +00:00
QMK Bot
49fd13f596 Merge remote-tracking branch 'origin/master' into develop 2023-10-31 01:52:15 +00:00
Matt Chan
cb9705428b Add Kindakeyboards Conone65 Via support (#22320) 2023-10-31 01:51:29 +00:00
QMK Bot
f24d51f5be Merge remote-tracking branch 'origin/master' into develop 2023-10-31 01:32:32 +00:00
Cipulot
538b79657e Fix for swapped PID and VID (#22372) 2023-10-31 01:31:58 +00:00
Joel Challis
17c3182b1c Remove use of broken split.main (#22363) 2023-10-30 00:49:56 +00:00
Joel Challis
559450a099 Fix 'to_c' for config.h mappings (#22364) 2023-10-29 23:41:44 +00:00
Ryan
4313b66edd whitefox: remove pointless file (#22366) 2023-10-29 23:28:38 +00:00
Ryan
17ccf3521b Add _LED_COUNT defines to LED drivers (#22309) 2023-10-30 09:39:26 +11:00
David Hoelscher
c667da0190 QP getters correction (#22357) 2023-10-29 17:35:38 +00:00
Joel Challis
98530cad3b Implement data driven dip switches (#22017)
* Add data driven dip switches

* Autogen weak matrix_mask
2023-10-29 01:09:02 +01:00
QMK Bot
64ea1179b1 Merge remote-tracking branch 'origin/master' into develop 2023-10-28 20:28:40 +00:00
yuezp
46dedfaaa4 [Keyboard] add enter67 keyboard (#22346)
Co-authored-by: “yuezp” <“yuezpchn@126.com”>
2023-10-28 13:28:03 -07:00
QMK Bot
fa2b8082e6 Merge remote-tracking branch 'origin/master' into develop 2023-10-28 05:26:02 +00:00
Brian Choromanski
c133bd1234 Removed clueboard link as the website has been parked for some time (#22290) 2023-10-28 16:25:30 +11:00
QMK Bot
6b4728796a Merge remote-tracking branch 'origin/master' into develop 2023-10-28 01:10:36 +00:00
Joel Challis
ca2d2a524f Flag more VIAL config options in lint (#22345) 2023-10-28 02:09:53 +01:00
QMK Bot
0d247aae3a Merge remote-tracking branch 'origin/master' into develop 2023-10-27 18:40:52 +00:00
Felix Jen
1a300d05bd [Keyboard] Add Velvet hotswap & solder (#22284) 2023-10-27 12:40:18 -06:00
Stefan Kerkmann
5856d5e13b [Maintenance] USB HID control packet as struct (#21688)
* ChibiOS: USB HID control request as dedicated struct

Instead of accessing the raw USB setup packet and documenting the values
as the corresponding USB HID control request fields we introduce a
struct that allows direct access to the fields. This is safer and self
documenting.

* Rename usb_request.h to usb_types.h

In the future all shared USB data types can live in this file.
2023-10-27 18:44:58 +02:00
QMK Bot
64d1ce751f Merge remote-tracking branch 'origin/master' into develop 2023-10-27 08:23:43 +00:00
millet
18ef3da8e8 [Keyboard] doksin (#22220) 2023-10-27 01:23:02 -07:00
QMK Bot
33a4075930 Merge remote-tracking branch 'origin/master' into develop 2023-10-27 08:10:14 +00:00
eason
ae2703b69b eason/aeroboard - Modify bootloader (#22286) 2023-10-27 09:09:38 +01:00
QMK Bot
7948fefcd7 Merge remote-tracking branch 'origin/master' into develop 2023-10-27 07:32:28 +00:00
gskygithub
052cc5df5d Add darkproject/kd87a_bfg_edition keyboard (#18981)
Co-authored-by: gksygithub <106651989+gksygithub@users.noreply.github.com>
2023-10-27 00:31:54 -07:00
4pplet
5878336f66 [Keyboard] Add Waffling60 revision e (#21664)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-10-26 23:42:11 -07:00
QMK Bot
71abc01d0a Merge remote-tracking branch 'origin/master' into develop 2023-10-27 06:40:57 +00:00
4pplet
e82bc5355c [Keyboard] Waffling60 Rev E ANSI Hotswap (#22270)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-10-26 23:40:21 -07:00
QMK Bot
2571c205e4 Merge remote-tracking branch 'origin/master' into develop 2023-10-27 06:38:56 +00:00
khchen2004
0ad780f852 [Keyboard] add pisces pcb (#22334) 2023-10-26 23:38:22 -07:00
QMK Bot
60599ccc9e Merge remote-tracking branch 'origin/master' into develop 2023-10-27 04:11:15 +00:00
Kael Augusto
f5cd30458a [Keyboard] Add Kaly42 (#22282)
* Added Kaly/Kaly42 keyboard's minimal files.

* Updated readme.md; New link and improved description text.

* Apply suggestions from code review

Added all suggestions given by @dunk2k

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

* Added community_layouts to info.json.

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

---------

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-10-26 22:10:30 -06:00
Ryan
db4e3bb232 V-USB: Fix GET_IDLE/SET_IDLE (#22332)
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2023-10-27 12:21:13 +11:00
Dasky
c5716f84ad Merge branch 'master' into develop 2023-10-26 22:44:14 +01:00
Dasky
e0c00c35ce Clarify PIO define is optional in docs. (#22339) 2023-10-26 22:34:17 +01:00
QMK Bot
372f1bf8cc Merge remote-tracking branch 'origin/master' into develop 2023-10-25 23:07:48 +00:00
Olivia J
d2892685c5 [Keyboard] Add LGBTKL (#22331)
Co-authored-by: jack <0x6a73@protonmail.com>
2023-10-25 17:07:00 -06:00
Dasky
f293658147 RGB/LED matrix use limits size optimisation (#22325) 2023-10-25 22:06:51 +01:00
jack
896d3dc497 Add DD mappings for locking switch (#22242)
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-10-25 02:15:27 -07:00
Rakib Shahid
8e3903ca38 Added gamma values for ST7735 displays (#22313)
Co-authored-by: Pablo Martínez <58857054+elpekenin@users.noreply.github.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2023-10-25 00:11:10 -07:00
Ryan
b7e62af755 V-USB: Implement GET_PROTOCOL and SET_PROTOCOL handling (#22324) 2023-10-25 00:54:43 +01:00
Dasky
7e0147f8e6 Fix compilation error when led/rgb process limit is zero. (#22328)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-10-24 13:45:33 +01:00
QMK Bot
c245ee4cd3 Merge remote-tracking branch 'origin/master' into develop 2023-10-23 23:00:51 +00:00
Dasky
ca45416999 Remove extra led_matrix_indicators_user call (#22329) 2023-10-24 00:00:16 +01:00
QMK Bot
0b65af96fd Merge remote-tracking branch 'origin/master' into develop 2023-10-23 18:13:13 +00:00
owlab-git
d2773c6d67 [Keyboard] Add QK100 (#21782)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-10-23 12:12:27 -06:00
QMK Bot
45612ac595 Merge remote-tracking branch 'origin/master' into develop 2023-10-23 18:10:35 +00:00
Yonghyuk Choi
96c71b9b4c [Keyboard] Add purin (#22306) 2023-10-23 12:09:51 -06:00
Ryan
0c160e1fba Separate 6KRO and NKRO report structs (#22267) 2023-10-23 15:43:46 +11:00
Joel Challis
bf6f13a2b0 Consolidate some EEPROM Driver configuration (#22321) 2023-10-23 00:37:27 +01:00
Dasky
79094d3f72 Modify split config is_keyboard_master/left checks. (#21875)
* rework split configuration

* Apply suggestions from code review

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

* lint

* missed return

---------

Co-authored-by: Joel Challis <git@zvecr.com>
2023-10-22 19:47:39 +01:00
Ryan
cf7d3435d7 Add _flush() functions to LED drivers (#22308) 2023-10-22 18:32:27 +01:00
studiokestra
1e9b299fb0 Rename LINE FRIENDS TKL keyboard (#22310) 2023-10-22 15:56:46 +01:00
Andrey Tutolmin
4410e6b3bf Russian typewriter keymap file for popular legacy layout (#21174)
Co-authored-by: Andrei Tutolmin <andrei@tutolmin.com>
2023-10-22 03:44:44 -07:00
Nick Brassel
8e614250b4 [QP] Add support for OLED, variable framebuffer bpp (#19997)
Co-authored-by: Pablo Martínez <58857054+elpekenin@users.noreply.github.com>
Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
Fixup delta frame coordinates after #20296.
2023-10-22 13:27:31 +11:00
Joel Challis
48d9140cfc Fix invalid LED driver config (#22312) 2023-10-22 00:47:37 +01:00
Ryan
d56ee70c52 Rename DRIVER_ADDR_n defines (#22200)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2023-10-21 21:41:59 +10:00
Joel Challis
3f1b3a5125 Migrate recently introduced sync items (#22305) 2023-10-21 12:21:23 +01:00
QMK Bot
87b4bc17ed Merge remote-tracking branch 'origin/master' into develop 2023-10-21 10:32:05 +00:00
Nick Brassel
0e6d47e1e4 Fixup symbol sizing listing. (#22307) 2023-10-21 21:31:23 +11:00
Ryan
2b8d9f3193 ChibiOS pin defs: use only vendor if present (#22297) 2023-10-21 14:02:03 +11:00
Joel Challis
e4c54a9612 Support additional split sync items for info.json (#22193) 2023-10-21 01:48:05 +01:00
QMK Bot
20cefe254d Merge remote-tracking branch 'origin/master' into develop 2023-10-16 22:44:27 +00:00
Nick Brassel
f6c70c40af Allow for disabling of parallel processing of qmk find and qmk mass-compile. (#22160)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-10-17 09:43:50 +11:00
QMK Bot
184c5844be Merge remote-tracking branch 'origin/master' into develop 2023-10-14 12:11:45 +00:00
Nick Brassel
81a3aa025c Fix typo in keychron v6 encoder map enable (#22272) 2023-10-14 23:10:55 +11:00
Ryan
1bff37781b Prep work for NKRO report separation (#22268)
* Clean up some keyboard/userspace code

* Rename `KEYBOARD_REPORT_BITS` -> `NKRO_REPORT_BITS`

* Add some missing includes

* Use `PACKED` define for report types

* Fix incorrect function signatures for FlexRAM EEPROM driver
2023-10-14 13:21:20 +02:00
QMK Bot
1da7c8c8d0 Merge remote-tracking branch 'origin/master' into develop 2023-10-14 07:04:36 +00:00
jukaie
23a8f7f03b [Keyboard] jukaie/jk01 (#20573)
* ADD Keyboard

* Resolved requested changes

* update keymap.c file

* resolved requested changes

* updated info.json file

* Updated requested changes

* Delete JK01.h file

* Resolved requested changes

* Delete readme.md

* add rules.mk to default folder

* Upload default/keymap.c

* Add via/keymap.c

* Updated info.Json file

* Change VID in info.json

* Resolved requested changes

* Resolved requested changes.

* Resolved requested changes

* Updated changes

---------

Co-authored-by: gksygithub <gskyGit@gsky.com.tw>
2023-10-14 00:03:29 -07:00
QMK Bot
fd18d95b77 Merge remote-tracking branch 'origin/master' into develop 2023-10-14 04:31:03 +00:00
MakotoKurauchi
a46c7abd01 Enable encoder map on navpad1.0 (#22266) 2023-10-13 21:30:25 -07:00
Ryan
539c8e3b72 jian/rev1: convert to DIP Switch (#22248) 2023-10-14 07:02:44 +11:00
QMK Bot
527a4ee846 Merge remote-tracking branch 'origin/master' into develop 2023-10-13 07:53:54 +00:00
Sắn
62ff02a101 [Keyboard] Add Okayu (#22077)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-10-13 01:53:12 -06:00
QMK Bot
0943d0a2a0 Merge remote-tracking branch 'origin/master' into develop 2023-10-13 07:07:54 +00:00
Duncan Sutherland
032b039d0b amend alice* community_layouts in keyboards (#21846)
* add alice* to keyboards

* add seigaiha

* additions

* Update info.json

* revert wanderland

* add tgr/alice

* add matrix diagram.md
2023-10-13 00:07:16 -07:00
Ryan
c157c19b81 Dedupe I2C, SPI, UART driver inclusions (#22253) 2023-10-13 17:25:32 +11:00
skyloong
f150258e5a [Keyboard] Skyloong GK61 Pro 48 (#21654)
* Create GK61 PRO_48 Keyboard.

* update pro.c and config.h to save power when USB suspend.

* Update keyboards/skyloong/gk61/pro_48/info.json

OK,thank you.

* update info.json

* update layer indicator

* Update RGB animations---delete rainbow_beacon and rainbo_pinwheels.

* Cancel force_nkro

* Add caps lock indicator in rgb matrix.

* Update keyboards/skyloong/gk61/pro_48/pro_48.c

OK, thank you for your suggestion.

* Enable I2C DMA; Modified pro_48.c

* Update keyboards/skyloong/gk61/pro_48/info.json

OK, thank you for your suggestion.

* Update keyboards/skyloong/gk61/pro_48/info.json

OK, thanks.

* enable encoder map in default keymap.

* define g_suspend_state
2023-10-12 21:59:10 -07:00
QMK Bot
0d7d2f7915 Merge remote-tracking branch 'origin/master' into develop 2023-10-12 21:56:35 +00:00
lendunistus
0477160109 [Keyboard] RPNeko65 by lendunistus (#21747)
* initialise rpneko65, info.json

* force NKRO

* define WS2812 stuff

and capitalise RPNeko65

* use RGBlight, add ANSI to keymap.c

also remove _ADC suffixes from pins

* basic readme

plus making it so the info.json RGB values are actually recognised as integers

* update repository URL

* fix info.json formatting

* caps lock LED implementation

"borrowed" from waffling60

* put RGBLIGHT_ENABLE in json

also remove "pin" from the rgblight option

* add actually correct keymaps

also reformat info.json

* move to designer folder, add image to README

* move keyboard to separate revision folder

and remove erroneous tag from config.h

* remove brightness/hue/saturation steps

* change device version to 1.0

* move quantum.h include to top

* actually, let's try a new image

I also forgot to save the info.json file beforehand
oops

* Remove comma in info.json

* Community layouts in info.json

* Delete rpneko65/readme.md

* Apply suggested changes to readme

* Suggested code changes

* Suggested imgur link

* rename code file

this was the issue all along
sigh

* Correct layer matching this time

* Move Enter in info.json

* README/info.json change

* Another batch of suggestions
2023-10-12 14:56:01 -07:00
QMK Bot
d0c495f4bc Merge remote-tracking branch 'origin/master' into develop 2023-10-12 21:36:13 +00:00
jonylee@hfd
e22cb99bc4 [Keyboard] Inland V83P (#21725)
* [Keyboard]add v83p keyboard.

* Update keymap.c

* Update keyboards/inland/v83p/keymaps/via/keymap.c

* Update keyboards/inland/v83p/keymaps/default/keymap.c

* Update keyboards/inland/v83p/config.h

* Update keyboards/inland/v83p/info.json

* Update info.json

* Update keymap.c

* Update keyboards/inland/v83p/mcuconf.h

* Update keyboards/inland/v83p/halconf.h

* Update keyboards/inland/v83p/info.json

* Update keyboards/inland/v83p/v83p.c

* Update keymap.c

replace the tabs with spaces

* Update keymap.c

replace the tabs with spaces

* Update keyboards/inland/v83p/info.json
2023-10-12 14:35:39 -07:00
skyloong
ed78c13b5f [Keyboard] Skyloong GK61 PRO (#21450)
* Add GK61 PRO keyboard

* Update info.json regarding to dunk2k suggestion

* Update keymap files regarding to dunk2k suggestion

* Update keyboards/skyloong/gk61/pro/config.h

OK, thanks for your suggestion.

* Update keyboards/skyloong/gk61/pro/keymaps/default/keymap.c

OK, thanks.

* Update keyboards/skyloong/gk61/pro/keymaps/via/keymap.c

OK, thanks.

* Update keyboards/skyloong/gk61/pro/rules.mk

OK, thank you for your suggestion.

* Update keyboards/skyloong/gk61/pro/info.json

OK,thanks.

* Update keyboards/skyloong/gk61/pro/keymaps/default/keymap.c

OK, thanks.

* Update keyboards/skyloong/gk61/pro/info.json

I see , thanks for your guidance.

* Update keyboards/skyloong/gk61/pro/config.h

OK, thank you.

* Update keyboards/skyloong/gk61/pro/info.json

OK, thank you for your suggestion.

* Update keyboards/skyloong/gk61/pro/info.json

I see, thank you.

* Update keyboards/skyloong/gk61/pro/config.h

OK, thank you for your suggestion.

* Update keyboards/skyloong/gk61/pro/pro.c

I see , thank you.

* Correct PCB feature description in readme.

* Update keyboards/skyloong/gk61/pro/config.h

It doesn't seem to be a problem to compile without defining DRIVER_COUNT. Thank you for your rigor and seriousness.

* Update keyboards/skyloong/gk61/pro/keymaps/default/keymap.c

OK, thank you.

* update config.h to define __flash.

* Update keyboards/skyloong/gk61/pro/config.h

I see, thanks for your suggestion.

* add hardware availabilty international website

* update via/rules.mk for encoder map

* Revert "update via/rules.mk for encoder map"

This reverts commit 66601242af.

* Update keyboards/skyloong/gk61/pro/config.h

OK, thanks.

* Update rules.mk

Enable the encoder map.

* 1.update readme to correct mcu type ; 2. update pro.c to improve indicator function.

* update pro.c and config.h to save power when USB suspend.

* update info.json

* Update RGB animations---delete rainbow_beacon and rainbow_pinwheels

* Update keymap.c and layer indication.

* Enable I2C DMA

* Update keyboards/skyloong/gk61/pro/info.json

OK,Thank you for your suggestion.

* Update keyboards/skyloong/gk61/pro/info.json

OK,Thanks.

* enable encoder map in default keymaps

* Update keyboards/skyloong/gk61/pro/info.json

OK. Thank you for your suggestion.
2023-10-12 14:22:36 -07:00
QMK Bot
daf540c0bb Merge remote-tracking branch 'origin/master' into develop 2023-10-12 21:08:29 +00:00
EnviousData
391c0428c9 [Keyboard] Add support for EnviousDesign keyboards (#17544)
* Add support for Envious.Design Keyboards

Add various RP2040 keyboards I've designed.

* Fixed missing newlines at EOF.

* Ran CLANG-FORMAT and sorted out any potential issues.

* Gave keyboards all unique product IDs

* Made requested changes.

* removed all VIAL related code
* sorted out license on all *.h or *.h  files
* removed outdated RESET Keycode

* missed some VIAL bits

* Made suggested changes

* Made Suggested Changes

* missed one file to change.

* Attempted fix of CI issues

* Update .gitmodules

* Revert "Update .gitmodules"

This reverts commit f4bace5162.

* hopefully fixed all CI and QMK lint issues

* resolve more CI errors and a couple typos

* fixed last remaining issue as of now

* made requested changes

* further more on suggested change

* Delete README.md

* derpy workaround to change case of readme

* finished up 65M firmware

via does not work, I will investigate another time.

* re-did a lot of 65M firmware bits, also fixed via for this board

* corrected mistake in firmware

* made suggested change to info.json for 65m/60F

* finished 65M non via keymap and re-sorted via keymap

* Update keyboards/enviousdesign/tkl/rgb/keymaps/default/keymap.c

* Update keyboards/enviousdesign/tkl/rgb/keymaps/default/keymap.c

* Apply suggestions from code review

Verified updated Info.json works for aforementioned keyboards,

* Follow-up commit with aforementioned suggested changes

* Apply suggestions from code review

correction to a couple typos pointed out.

* follow-up removed some un-needed Readmes and corrected a mistake in 60F via keymap

* Apply suggestions from code review

* Added images of PCB to each Keyboard README

* Apply suggestions from code review

* Update keyboards/enviousdesign/60f/readme.md

* Added missing aspects of info.json and corrected RGB_DI_PIN to WS2812_DI_PIN in RGB keyboard

* made requested changes

* Update config.h

* used QMK migrate to update info.json

* Apply suggestions from code review

* Update keyboards/enviousdesign/65m/info.json

* renamed named keyboards as suggested and added commission keyboard to repo

* renamed file to hopefully please lint

* renamed things to be all lower case since lint doesn't appear to look for upper case

* updated keymap.c and removed unnecessary file

* fixed readme and a couple other bits

* converted various aspects to json information

* attempt fix for lint error

* fix some issues I overlooked

* Apply suggestions from code review

* moved some folders about as suggested

* Made suggested changes

* Apply suggestions from code review

* removed outdated config.h

* fixed errors in 65M and mini1800

* Apply suggestions from code review

* Update keyboards/enviousdesign/delirium/rev1/info.json

* Update keyboards/enviousdesign/65m/info.json

* Apply suggestions from code review
2023-10-12 14:07:42 -07:00
QMK Bot
a516f20215 Merge remote-tracking branch 'origin/master' into develop 2023-10-12 20:32:17 +00:00
Felipe Curty
c67c9f1d98 Add support for CSTC40 keyboard (#22154)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: lesshonor and waffle87
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: lesshonor
Co-authored-by: itsvar <120035196+itsvar8@users.noreply.github.com>
2023-10-12 14:31:41 -06:00
QMK Bot
f4ed65169f Merge remote-tracking branch 'origin/master' into develop 2023-10-12 19:47:06 +00:00
Wilhelm Schuster
b630df1aa7 Reword mention of personal keymaps from PR checklist (#22258) 2023-10-13 06:46:28 +11:00
QMK Bot
04b8159d17 Merge remote-tracking branch 'origin/master' into develop 2023-10-12 18:22:12 +00:00
kisakey-luxury
999e721312 Kisakey (#22217)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-10-12 11:21:30 -07:00
QMK Bot
28696197e5 Merge remote-tracking branch 'origin/master' into develop 2023-10-12 08:13:24 +00:00
Duncan Sutherland
b5423b2e83 Add 60_iso_tsangan_split_bs_rshift Community Layout (#21812)
* add 60_(ansi|iso)_tsangan_split_bs_shift layouts

* shift to rshift

* remove 60_ansi_tsangan_split_bs_rshift

* Update layouts/default/60_iso_tsangan_split_bs_rshift/info.json
2023-10-12 01:12:50 -07:00
QMK Bot
a682a98ef3 Merge remote-tracking branch 'origin/master' into develop 2023-10-12 05:38:07 +00:00
adam tombleson
f536646235 Add 62 key Dactyl Manuform (#21394)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-10-11 22:37:28 -07:00
Alin Marin Elena
007c0c1db4 Updates to mlego m65 (#20220)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-10-11 22:26:20 -07:00
QMK Bot
c72d661b93 Merge remote-tracking branch 'origin/master' into develop 2023-10-12 04:44:23 +00:00
4pplet
ad4ecd6eb4 Add Ratio60 PCB (#21609)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: 4pplet <4pplet@protonmail.com>
Co-authored-by: 4pplet <stefan.ess@gmail.com>
2023-10-11 21:43:47 -07:00
QMK Bot
5e8a156222 Merge remote-tracking branch 'origin/master' into develop 2023-10-12 04:17:13 +00:00
Agent Blu, 006
fa8940e5a6 Keyboard change blu/vimclutch to hardware revision B. (#22247)
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-10-11 21:16:34 -07:00
QMK Bot
3c0f9599b7 Merge remote-tracking branch 'origin/master' into develop 2023-10-12 03:24:28 +00:00
Duncan Sutherland
527790b000 add 60_(ansi|iso)_wkl* community layouts (#21811)
* add 60_(ansi|iso)_tsangan_wkl* layouts

* Update keymap.c

* `tsangan_wkl` to `wkl`

* update info.json

* split backspace changes

* Apply suggestions from code review
2023-10-11 20:23:50 -07:00
ClicketySplit
ffcc54833d Leeloo v2.1 revision 3 updates (#22236) 2023-10-11 14:33:38 -07:00
QMK Bot
e03afcb083 Merge remote-tracking branch 'origin/master' into develop 2023-10-11 21:09:56 +00:00
Josh Hinnebusch
db8b74f016 [Keyboard] Hineybush H101 (#22186)
* initial h101 commit

* update keymap and add via support

* update doc stuff

* readme typo

* updates

* add indicator LEDs, needs testing

* update readme

* update USB VID/PID to match VIA json

* Update keyboards/hineybush/h101/readme.md

* Update keyboards/hineybush/h101/keymaps/default/keymap.c

* Update keyboards/hineybush/h101/readme.md

* Update keyboards/hineybush/h101/keymaps/via/keymap.c

* updates from PR comments

* updates per PR comments

* idk why the folder is acting weird

* maybe this will fix it

* update to hopefully fix everything weird

* keycode fixes

* keymap updates
2023-10-11 14:09:17 -07:00
QMK Bot
47145a6ce8 Merge remote-tracking branch 'origin/master' into develop 2023-10-11 07:07:05 +00:00
Dasky
81e086b387 add missing gpio include for pointing motion pin (#22246) 2023-10-11 00:06:28 -07:00
QMK Bot
474a405606 Merge remote-tracking branch 'origin/master' into develop 2023-10-10 21:08:37 +00:00
jonylee@hfd
0650f783b5 [Keyboard] MonsGeek M3 (#20542)
* Add keybord monsgeek m3.

* Add keybord monsgeek m3.

* Add keybord monsgeek m3.

* updata rules.mk

* add readme.md

* delete monsgeek\m3\rgb_matrix_kb.inc

* add DISABLE_M3_KEYCODES

* user_config --> kb_config

* Move code to info.json,and removed redundant features

* Update keyboards/monsgeek/m3/info.json

* Update keyboards/monsgeek/m3/info.json

* Update readme.md

* Update keyboards/monsgeek/m3/config.h

* Update keyboards/monsgeek/m3/info.json

* Update keyboards/monsgeek/m3/info.json

* Update keyboards/monsgeek/m3/keymaps/default/keymap.c

* Update keyboards/monsgeek/m3/keymaps/via/keymap.c

* Update keyboards/monsgeek/m3/readme.md

* Update m3.c

* Update m3.c

* Update info.json

* Update keymap.c

* Update keymap.c

* Update config.h

* Update keyboards/monsgeek/m3/readme.md

* Update keyboards/monsgeek/m3/rules.mk

* Update keyboards/monsgeek/m3/info.json

* Update keyboards/monsgeek/m3/keymaps/default/keymap.c

* Update keyboards/monsgeek/m3/keymaps/via/keymap.c

* Update keyboards/monsgeek/m3/info.json

* Update keyboards/monsgeek/m3/info.json

* Update keyboards/monsgeek/m3/info.json

* Update m3.c

* Update keyboards/monsgeek/m3/info.json

* Update keyboards/monsgeek/m3/m3.c

* Update keymap.c

replace the tabs with spaces

* Update keymap.c

replace the tabs with spaces
2023-10-10 14:07:59 -07:00
QMK Bot
17c7d1fac3 Merge remote-tracking branch 'origin/master' into develop 2023-10-10 00:42:16 +00:00
Arthur
6dafcac713 [Keyboard] Add MIIIW BlackIO83 (#21970)
* Add MIIIW BlackIO83

* Improve the code

* Updated instructions for entering the bootloader

* Update keyboards/miiiw/blackio83/rev_0100/config.h

* Update keyboards/miiiw/blackio83/rev_0100/config.h

* Update keyboards/miiiw/blackio83/config.h

* Update config.h
2023-10-09 17:41:40 -07:00
QMK Bot
0e5f7ac3ba Merge remote-tracking branch 'origin/master' into develop 2023-10-09 22:17:19 +00:00
Joel Challis
81d69a5798 Resolve invalid keyboard alias targets (#22239) 2023-10-09 23:17:05 +01:00
Joel Challis
509a2b40b7 Fix old usage of UNICODE_MODE_MAC (#22238) 2023-10-09 23:16:54 +01:00
Dasky
77fe1298c7 Yampad add missing includes for CONVERT_TO (#22237) 2023-10-09 23:16:38 +01:00
Dasky
20eb93e05c Yampad add missing includes for CONVERT_TO (#22237) 2023-10-09 23:16:21 +01:00
QMK Bot
683cdf3a43 Merge remote-tracking branch 'origin/master' into develop 2023-10-09 19:51:13 +00:00
HorrorTroll
3665ae0441 [Keyboard] HorrorTroll Nyx (#21143)
* Added support keyboard Nyx

* Resolved zvarc suggested and lint error

* Delete FORCE_NKRO due to problem with BIOS on mainboard

* Resolved dunk2k suggested and limit more brightness, disable some RGB Effect

* Resolved drashna suggested

* Delete flower blooming effect and move to rev1 folder
2023-10-09 12:50:33 -07:00
Dominik
fa1c1cbbee avrdude: Version 7.2 changes the text output (#22235)
from "could not find USB device with" to "cannot find USB device with"
This should fix issue #22234

Co-authored-by: Dominik Loidolt <dominik.loidolt@univie.ac.at>
2023-10-09 17:41:00 +01:00
QMK Bot
e2e6b3dfd6 Merge remote-tracking branch 'origin/master' into develop 2023-10-09 08:38:22 +00:00
James Young
6e6fff866e Fix typo in docs/feature_tri_layer.md (#22232)
`Stes` -> `Sets`
2023-10-09 09:37:21 +01:00
QMK Bot
62731fe255 Merge remote-tracking branch 'origin/master' into develop 2023-10-09 07:06:42 +00:00
Cloud Chagnon
ad14a27cd3 [Keyboard] Split-Cloud Handwired (#21327)
* Added new handwired, the Split-Cloud

* Minor changes to make clang-format happy

* Alligned files with project standard.

Trimmed midi out of the default layout, modified the readme, and removed unnecessary files.

* Simplified default keymap further, changes to info.json

* Moved image to imgur, simplified, and removed the unneeded rules.mk file

* Update keyboards/handwired/split_cloud/readme.md

Changed image in readme to Huge Thumbnail instead of Original.

* Removed unneeded tri layer custom keycodes

Now using the built-in functionality!

* Update keyboards/handwired/split_cloud/readme.md

Accidentally reverted this when making other changes
2023-10-09 00:06:00 -07:00
QMK Bot
21f15960a9 Merge remote-tracking branch 'origin/master' into develop 2023-10-09 06:36:35 +00:00
vinhcatba
e1630edef4 [Keyboard] vinhcatba/uncertainty (#21142)
* vinh: test fw for uncertainty (deprecated)

* v0.1: update base firmware with 2 layers, use bongo cat animation for oled

* v0.1: change directory

* v0.1: cleanup

* v0.2: update layers

* v0.3: add VIA support

* v0.3: add VIA support (continue)

* vinh: test fw for uncertainty (deprecated)

* v0.1: update base firmware with 2 layers, use bongo cat animation for oled

* v0.1: change directory

* v0.1: cleanup

* v0.2: update layers

* v0.3: add VIA support

* v0.3: add VIA support (continue)

* v0.3: change keyboard name, remove eeprom config save in VIA keymap

* cleanup for PR

* update readme

* vinh: test fw for uncertainty (deprecated)

* v0.1: update base firmware with 2 layers, use bongo cat animation for oled

* v0.1: change directory

* v0.1: cleanup

* v0.2: update layers

* v0.3: add VIA support

* v0.3: add VIA support (continue)

* vinh: test fw for uncertainty (deprecated)

* v0.1: update base firmware with 2 layers, use bongo cat animation for oled

* v0.1: change directory

* v0.1: cleanup

* v0.3: change keyboard name, remove eeprom config save in VIA keymap

* cleanup for PR

* update readme

* add license to header files, update ws2812 driver and DI_PIN to info.json

* resovle PR suggestion for config.h, halconf.h, mcuconf.h

* update info.json regarding PR comment

* update bongo.h regarding PR comment

* add oled mode toggle

* update readme.md, rules.mk regarding PR comment

* add submodule update

* move oled handle to keyboard level

* Update keyboards/vinhcatba/uncertainty/uncertainty.c

forgot user-level proces_record

* now using bongo as source file

* Apply suggestions from code review

remove default value codes

* move WPM_ENABLE and ENCODER_MAP_ENABLE to keymap level

* Apply suggestions from code review

* Apply suggestions from code review

* Update keyboards/vinhcatba/uncertainty/config.h
2023-10-08 23:35:51 -07:00
QMK Bot
528ebb42a4 Merge remote-tracking branch 'origin/master' into develop 2023-10-08 18:43:45 +00:00
ikorihn
4345d34cf2 Fix build error when Automatic Mouse Layer is enabled (#22229) 2023-10-08 19:43:09 +01:00
QMK Bot
690792eca9 Merge remote-tracking branch 'origin/master' into develop 2023-10-08 11:45:49 +00:00
Joel Challis
7ca652ce6d Flag vial keymaps in 'qmk lint' (#22227) 2023-10-08 12:45:13 +01:00
Duncan Sutherland
99b545843e partially modernize dactyl_minidox (#21576)
* modernize `dactyl_minidox`

* Update config.h

revert RGB_MATRIX conditional
2023-10-08 01:38:30 -07:00
Pablo Martínez
21389fbd89 [Bugfix] qp_ellipse overflow (#19005) 2023-10-08 10:29:27 +11:00
QMK Bot
ab952c358e Merge remote-tracking branch 'origin/master' into develop 2023-10-07 14:36:44 +00:00
Brian
06d123de62 Adding BriianPowell Discipline Keyboard Layout Updates (#21474) 2023-10-08 01:36:05 +11:00
QMK Bot
48b694b8d6 Merge remote-tracking branch 'origin/master' into develop 2023-10-07 14:01:22 +00:00
noahbei
b768d74b2b Update vid for printedpad (#22215) 2023-10-07 15:00:46 +01:00
QMK Bot
6c858477f1 Merge remote-tracking branch 'origin/master' into develop 2023-10-07 00:31:49 +00:00
era
69c1790dce Klein_HS PCB support (#22203) 2023-10-06 17:31:08 -07:00
QMK Bot
6c3a512923 Merge remote-tracking branch 'origin/master' into develop 2023-10-06 00:34:51 +00:00
James Young
63b48f5096 Move orphaned Yugo-M files (#22211)
Moves files that were left behind by #14996.

[bugfix]
2023-10-06 01:34:14 +01:00
QMK Bot
0ca60eb759 Merge remote-tracking branch 'origin/master' into develop 2023-10-05 23:35:02 +00:00
Nick Brassel
127560ae22 Add qmk ci-validate-aliases (#22205) 2023-10-06 10:34:23 +11:00
adophoxia
a7406a429e Update Keychron Q4 (#21996) 2023-10-04 21:59:24 -07:00
adophoxia
5f33a251b3 Update Keychron Q0 (#22068)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-10-04 21:59:06 -07:00
QMK Bot
70f0c279f9 Merge remote-tracking branch 'origin/master' into develop 2023-10-05 04:56:02 +00:00
noahbei
92873cc14f Add printedpad keyboard (#21202)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-10-04 21:55:49 -07:00
studiokestra
2a8b3a809d Add Line TKL keyboard (#22172)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-10-04 21:53:41 -07:00
QMK Bot
d30fe46b51 Merge remote-tracking branch 'origin/master' into develop 2023-10-05 04:51:51 +00:00
lalalademaxiya1
8f757eece8 Add Keychron Q1 Version 2 (#20416)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: adophoxia <100170946+adophoxia@users.noreply.github.com>
Co-authored-by: Adophoxia <andyao1528@gmail.com>
2023-10-04 21:51:16 -07:00
QMK Bot
4e314d75af Merge remote-tracking branch 'origin/master' into develop 2023-10-05 04:48:12 +00:00
Etienne Collin
aaebb0a231 Add Wave keyboard (#22054)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-10-04 21:47:34 -07:00
QMK Bot
c33354805c Merge remote-tracking branch 'origin/master' into develop 2023-10-05 04:46:04 +00:00
xia0
9f31783249 Added 3dp660 oled keyboard (#20591)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: xia0 <xiao@morgan.net.au>
2023-10-04 21:45:27 -07:00
ClicketySplit
d187a0a3af Leeloo revision 2 updates (#21671)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-10-04 21:37:02 -07:00
QMK Bot
61a72b9c20 Merge remote-tracking branch 'origin/master' into develop 2023-10-05 04:03:05 +00:00
leyew
a58f86812c [Keyboard] Add qwertyqop60hs (#22164)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-10-04 21:02:26 -07:00
QMK Bot
cf5077451f Merge remote-tracking branch 'origin/master' into develop 2023-10-05 03:57:01 +00:00
thompson-ele
22fbbbb1cc [Keyboard] Add SP-111 v2 keyboard (#21652)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2023-10-04 20:56:26 -07:00
QMK Bot
c05603fa8c Merge remote-tracking branch 'origin/master' into develop 2023-10-05 03:50:19 +00:00
gskygithub
7603a464cd Add keyboard Projectd/75/Projectd_75_ansi (#21628)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: gksygithub <106651989+gksygithub@users.noreply.github.com>
2023-10-04 20:49:43 -07:00
QMK Bot
b5cbd7f040 Merge remote-tracking branch 'origin/master' into develop 2023-10-05 03:36:03 +00:00
Álvaro A. Volpato
d33f9ec86b Add Acheron Themis and its variants (#22142)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-10-04 20:35:24 -07:00
QMK Bot
a0805eda18 Merge remote-tracking branch 'origin/master' into develop 2023-10-04 10:17:45 +00:00
James Young
6e93b59f61 Monstargear XO87 Soldered: correct layout data (#22199)
Correct key positions on the bottom row for `LAYOUT_tkl_ansi_tsangan`.

[chore]
2023-10-04 11:17:01 +01:00
Ryan
d99dbe4d56 Update ISSI LED types (#22099) 2023-10-04 20:12:50 +11:00
Ryan
c0f16be50f Rename CKLED2001 driver to SNLED27351 (#22071) 2023-10-04 20:10:05 +11:00
QMK Bot
24a795d7a9 Merge remote-tracking branch 'origin/master' into develop 2023-10-04 04:03:33 +00:00
yuezp
5485d5023e Add the Split67 keyboard PCB (#22107)
Co-authored-by: “yuezp” <“yuezpchn@126.com”>
2023-10-03 21:02:42 -07:00
skyloong
2ba0a75c2f add Skyloong/GK61_V1 keyboard (#21364)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Fix and Matrix Diagram (#21255)
2023-10-03 21:01:10 -07:00
adophoxia
38f89dfc2f Update Keychron Q1v1 (#21993)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-10-03 20:53:39 -07:00
adophoxia
6f59236b1f Update Keychron Q3 (#21995)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-10-03 20:53:19 -07:00
adophoxia
75ba2db2c1 Update Keychron Q2 (#21994)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-10-03 20:52:09 -07:00
QMK Bot
177fee0ad4 Merge remote-tracking branch 'origin/master' into develop 2023-10-04 03:41:33 +00:00
Coom
d9fa80c0b0 Added /handwired/ziyoulang_k3_mod (#21965)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-10-03 20:40:57 -07:00
QMK Bot
733f1da96b Merge remote-tracking branch 'origin/master' into develop 2023-10-04 00:19:44 +00:00
Joel Challis
a638f6e5aa Fix minimum python version references (#22191) 2023-10-04 01:19:04 +01:00
Kuan-Wei, Chiu
3df155f203 Fix memory leak in realloc failure handling (#22188) 2023-10-04 09:27:11 +11:00
QMK Bot
d6b16b0df0 Merge remote-tracking branch 'origin/master' into develop 2023-10-03 07:34:43 +00:00
Syenasweta
bc5d407bf7 [Keyboard] Add SyenaKeyboards (#22168)
Co-authored-by: Syenasweta <syenasweta@gmail.com>
2023-10-03 01:34:06 -06:00
QMK Bot
800ea2af89 Merge remote-tracking branch 'origin/master' into develop 2023-10-03 07:27:40 +00:00
Sergey Fedorov
f33881b1da Add Soulstone keyboard (#22093) 2023-10-03 01:27:00 -06:00
Ryan
bd5860de4e is31fl3737/3741: add LED Matrix support (#22163) 2023-10-03 01:09:20 +11:00
QMK Bot
6e3f770d0d Merge remote-tracking branch 'origin/master' into develop 2023-10-02 10:50:26 +00:00
Joel Challis
997a6747ee Miscellaneous fixes for recently merged keyboards (#22179) 2023-10-02 11:49:53 +01:00
QMK Bot
e78fe5f77b Merge remote-tracking branch 'origin/master' into develop 2023-10-01 17:56:31 +00:00
casuanoob
1b7a538353 Bastard Keyboards: Add support for Dilemma Max (4x6_4) (#22064)
* tentatively add dilemma 4x6_4 WIP untested 
PR by Casuanoob.

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-10-01 18:55:54 +01:00
QMK Bot
da5d745c73 Merge remote-tracking branch 'origin/master' into develop 2023-10-01 05:34:31 +00:00
フィルターペーパー
8813bdf5dd Remove rosetta instructions for Apple Silicon (#22174) 2023-09-30 22:33:57 -07:00
QMK Bot
ca2cb4f28c Merge remote-tracking branch 'origin/master' into develop 2023-09-30 18:16:18 +00:00
Brian Low
c23d873e1a keyboards: Add support for Sofle Choc (#16736)
Co-developed-by: Brian Low <github@brianlow.com>
Co-developed-by: duese <duese@users.noreply.github.com>

Co-authored-by: Thomas Weißschuh <thomas@t-8ch.de>
2023-09-30 19:15:47 +01:00
QMK Bot
07ec38f345 Merge remote-tracking branch 'origin/master' into develop 2023-09-30 02:44:14 +00:00
Andrew Kannan
b404d5e9e4 Add Brutalv2 60 Keyboard (#22094)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-09-29 19:43:40 -07:00
Joel Challis
6910ed2de5 Add _DEFAULT_ON lighting configuration options (#21865) 2023-09-29 18:31:21 +01:00
Álvaro A. Volpato
2eed1f5bad Add RGBLIGHT_DEFAULT_ON macro configuration option (#20857)
* ADD RGB_DEFAULT_DISABLED option and updated documentation

* Formatting

* Add  as by fauxpark's suggestion

Co-authored by: fauxpark

* Formatting

* Use boolean values instead of numerical

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

* Edit documentation formatting

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

* Remove comment

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

* Set RGB mode to DEFAULT macro at init

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

---------

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: zvecr <git@zvecr.com>
2023-09-29 14:53:12 +01:00
QMK Bot
67f52935e3 Merge remote-tracking branch 'origin/master' into develop 2023-09-29 11:19:37 +00:00
Moritz Plattner
cfb4bb9b98 teleport/native: switch from wrongly used user to kb function, boost matrix scan rate (#21172)
* enable LTO

* change from _user to _kb function

* switch matrix io delay to nops, add opt=3 for higher scan rates

* disable console which was enabled for testing but collides with endpoint used by VIA

* switched from opt=3 to opt=2

* Update keyboards/teleport/native/native.c

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

* slightly upped debounce, as some testers had chatter with async + default debounce

---------

Co-authored-by: Joel Challis <git@zvecr.com>
2023-09-29 12:19:03 +01:00
QMK Bot
cfc668d43d Merge remote-tracking branch 'origin/master' into develop 2023-09-29 07:31:32 +00:00
James Young
ab1e851e7d 4pplet Eagle/Viper Rep Rev.A Layout Additions II (#22161) 2023-09-29 00:30:59 -07:00
QMK Bot
931354ca35 Merge remote-tracking branch 'origin/master' into develop 2023-09-29 06:43:28 +00:00
DOIO2022
5626a9282c Add KB12 keyboard (#21605)
Co-authored-by: Pablo Martínez <58857054+elpekenin@users.noreply.github.com>
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-09-28 23:42:45 -07:00
QMK Bot
7b1c200380 Merge remote-tracking branch 'origin/master' into develop 2023-09-29 06:39:55 +00:00
DUILCHOI
daea202bfd add linworks fave60 (#20796)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-09-28 23:39:15 -07:00
QMK Bot
79464f3c52 Merge remote-tracking branch 'origin/master' into develop 2023-09-29 04:55:52 +00:00
James Young
f214ee7f3a Rura66 Layout Data (#22155)
* Friendly-format `info.json`

[style]

* Update layout data

- separate keyboard halves
- add vertical stagger

[refactor]
2023-09-28 21:55:14 -07:00
QMK Bot
943876c432 Merge remote-tracking branch 'origin/master' into develop 2023-09-29 04:35:07 +00:00
James Young
0edc68f7cd HnahKB Freyr Layout Additions (#22150)
* Add layout/matrix diagram

[docs]

* Add `LAYOUT_tkl_ansi_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_ansi_tsangan_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_ansi_tsangan`

[enhancement]

* Add `LAYOUT_tkl_ansi_wkl_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_ansi_wkl`

[enhancement]

* Add `LAYOUT_tkl_iso_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_iso_tsangan_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_iso_tsangan`

[enhancement]

* Add `LAYOUT_tkl_iso_wkl_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_iso_wkl`

[enhancement]

* Extend Community Layout support

Add as supported layouts:

- `tkl_ansi_split_bs_rshift`
- `tkl_ansi_tsangan`
- `tkl_ansi_tsangan_split_bs_rshift`
- `tkl_iso_split_bs_rshift`
- `tkl_iso_tsangan`
- `tkl_iso_tsangan_split_bs_rshift`

[enhancement]
2023-09-28 21:34:30 -07:00
QMK Bot
a268437f17 Merge remote-tracking branch 'origin/master' into develop 2023-09-28 20:48:55 +00:00
Nick Brassel
c5706ef791 Allow for qmk mass-compile all:<keymap> (#22116)
Co-authored-by: Joel Challis <git@zvecr.com>
2023-09-29 06:48:20 +10:00
James Young
4a855bd2d1 GMMK2 65% ISO Community Layout Support (#22152)
* Refactor `LAYOUT` into `LAYOUT_65_iso_blocker`

Move the Enter key to the end of the home row for Community Layout
compatibility.

[chore] [refactor]

* Enable Community Layout support

[enhancement]
2023-09-28 21:30:07 +01:00
Less/Rikki
346b06d391 refactor: move default RGB/LED matrix #defines (#21938)
* refactor: move default RGB/LED matrix #defines

Moving the fallback definitions of macros like LED_MATRIX_VAL_STEP and
RGB_MATRIX_MAXIMUM_BRIGHTNESS to header files allows keyboards to
leverage these defaults without requiring #ifdef guards (and often
repeating said fallback definitions).

* style: use if(n)def for consistency

and remove redundant UINT8_MAX checks on maximum brightness

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

* refactor: remove INDICATOR_MAX_BRIGHTNESS macro

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

---------

Co-authored-by: Joel Challis <git@zvecr.com>
2023-09-28 11:51:18 +01:00
QMK Bot
f4677c866e Merge remote-tracking branch 'origin/master' into develop 2023-09-28 10:49:40 +00:00
Nick Brassel
fb0c64a567 Allow inline generation of compile_commands.json while doing a qmk compile, using --compiledb (#21549) 2023-09-28 11:48:58 +01:00
Joel Challis
da9f894341 Fix issues with adm42 (#22144) 2023-09-27 23:59:24 -07:00
Ryan
d58f85e09e is31fl3733: complete LED Matrix support (#22149) 2023-09-27 16:11:28 +10:00
Ryan
288c2313fe is31fl3218: Add LED Matrix support (#22126)
Co-authored-by: Joel Challis <git@zvecr.com>
2023-09-27 14:37:06 +10:00
Joel Challis
18bc541694 Update Drop keyboards for develop (#22145) 2023-09-27 04:16:37 +01:00
QMK Bot
41977a6010 Merge remote-tracking branch 'origin/master' into develop 2023-09-27 02:58:31 +00:00
Joel Challis
0ecb03ad47 Drop V2 production updates (#22147) 2023-09-27 03:57:57 +01:00
Joel Challis
4e86dca49d Fix parsing/validation for 21939 (#22148) 2023-09-27 03:57:37 +01:00
Ryan
32de27bb20 is31fl3736: extract single-color API (#22133) 2023-09-27 01:18:07 +01:00
QMK Bot
5da3604ec3 Merge remote-tracking branch 'origin/master' into develop 2023-09-26 23:49:20 +00:00
Joel Challis
25c850e762 Add support for YMD75 V4 - ISO (#22128) 2023-09-27 00:49:07 +01:00
Joel Challis
351b5cd2cd Initial support for CSTM80 (#22137) 2023-09-27 00:48:42 +01:00
Joel Challis
80ccbdfd86 More data driven RGB/LED Matrix config (#21939) 2023-09-27 00:41:13 +01:00
QMK Bot
d202355f75 Merge remote-tracking branch 'origin/master' into develop 2023-09-26 18:07:10 +00:00
Idan Kamara
ca9664b1ac [Keyboard] Add spankbd, 3x5+3 split keyboard (#22003) 2023-09-26 12:06:18 -06:00
QMK Bot
be1214814e Merge remote-tracking branch 'origin/master' into develop 2023-09-26 06:17:57 +00:00
Duncan Sutherland
46c1e7351e rastersoft/minitkl layout corrections (#22130) 2023-09-25 23:17:47 -07:00
Yanfei Guo
17ae28f0e4 Fix doc for programmable buttons. (#22136)
Co-authored-by: Yanfei Guo <yguo@anl.gov>
2023-09-25 23:17:20 -07:00
QMK Bot
fc25b92e0f Merge remote-tracking branch 'origin/master' into develop 2023-09-26 02:21:14 +00:00
Nick Brassel
8d9c770a81 Fix entry into bootloader for STM32G431. (#22138) 2023-09-26 12:20:32 +10:00
dztech
1acecc38e9 add tofujr v2 keyboard (#21740)
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-09-25 18:16:28 -07:00
QMK Bot
0b6c9385bc Merge remote-tracking branch 'origin/master' into develop 2023-09-25 19:41:01 +00:00
Ikko Eltociear Ashimine
6eb2e43a8d Fix typo in oled_driver (#22134)
betwen -> between
2023-09-25 20:40:27 +01:00
Joel Challis
339bff6339 Move velocikey to within rgblight (#22123) 2023-09-25 17:48:10 +01:00
QMK Bot
1052c03a5b Merge remote-tracking branch 'origin/master' into develop 2023-09-25 09:46:26 +00:00
Joy Lee
2fad45132f Added more rgb effects for rpk-001 keyboard (#22120) 2023-09-25 10:45:48 +01:00
James Young
a7afa58fb6 YMDK Melody96 Break-Up (#22121) 2023-09-24 22:39:18 -07:00
QMK Bot
d3b82322af Merge remote-tracking branch 'origin/master' into develop 2023-09-25 05:13:35 +00:00
spbgzh
538978b782 Add zoom98 (#22062)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2023-09-24 22:13:00 -07:00
Ryan
a931e6d7bd Update WS2812 docs and add APA102 docs (#22106)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2023-09-25 14:18:40 +10:00
Pablo Martínez
9b0887359b [Feature] Compilation warning if both keymap.json and keymap.c exist (#19939)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2023-09-25 14:17:50 +10:00
QMK Bot
2563c9ba7f Merge remote-tracking branch 'origin/master' into develop 2023-09-25 03:34:50 +00:00
Ross Montsinger
7e923580a5 Add Palmetto PCB (#21955) 2023-09-24 20:33:55 -07:00
skyloong
234e099c72 Added skyloong/Qk21 v1 Number Pad (#21467)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-09-24 20:28:08 -07:00
Ryan
21ed9b4575 Simplify more feature driver defines (#22090) 2023-09-25 13:06:42 +10:00
Joel Challis
61702b2564 Set default board files for uf2boot bootloader (#22129) 2023-09-25 13:05:28 +10:00
Joel Challis
a4760c4d1b Remove duplicated rgblight implementation from mxss (#22122) 2023-09-25 13:04:38 +10:00
Nick Brassel
c597731d1d Merge remote-tracking branch 'upstream/master' into develop 2023-09-25 13:03:02 +10:00
Less/Rikki
6b671f93c6 feat(eyeohdesigns/babyv): rgb matrix (#22105) 2023-09-25 13:02:08 +10:00
dependabot[bot]
0c4bd1ccdc Bump tj-actions/changed-files from 38 to 39 (#21923)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-25 13:00:34 +10:00
Michael Büchler
4d994458f0 Document the RP2040-specific PS/2 implementation (#22079)
Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
2023-09-25 13:00:13 +10:00
QMK Bot
27ad5b4f4e Merge remote-tracking branch 'origin/master' into develop 2023-09-25 02:59:53 +00:00
Andrew Kannan
c10a46aa43 Add is0gr to QMK (#22024)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
2023-09-25 12:59:38 +10:00
HorrorTroll
9d526b8d66 Added flower blooming on RGB Matrix effect (#21948) 2023-09-25 12:58:45 +10:00
Duncan Sutherland
e3cbd8a965 amend 75_(ansi|iso) community_layouts in keyboards/ (#21837) 2023-09-25 12:57:18 +10:00
Duncan Sutherland
2181da4b72 amend split_* community_layouts in keyboards (#21847) 2023-09-25 12:56:33 +10:00
3araht
de8d8686d2 Chromatonemini info json revised to support qmk 0.22.2 (#21966) 2023-09-25 12:55:42 +10:00
Duncan Sutherland
1a1085da48 Add community layout support to tofu60 (#22041) 2023-09-25 12:54:59 +10:00
Purdea Andrei
408d61dcfb Chibios SPI driver: allow some SPI pins to be left unassigned (#20315)
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2023-09-25 12:54:22 +10:00
NapOli1084
e0eb90aba1 Fix OSM on a OSL activated layer (#20410) 2023-09-25 12:53:12 +10:00
Daniel Kao
f35dee5c05 Take care of scroll divisor remainders for PS/2 drag scroll (#20732) 2023-09-25 12:49:31 +10:00
Andre Brait
960d6e0d7d [Enhancement] Improvements for debounce test coverage + bug fixes for sym_defer_g and sym_eager_pr (#21667)
Co-authored-by: Nebuleon <2391500+Nebuleon@users.noreply.github.com>
2023-09-25 12:48:55 +10:00
Isaac Elenbaas
dd94877ec6 Improve test invocation, fix Retro Shift bugs, and add Auto+Retro Shift test cases (#15889) 2023-09-25 12:45:49 +10:00
Nick Brassel
1fb02d5ad8 Merge remote-tracking branch 'upstream/master' into develop 2023-09-25 12:34:48 +10:00
plaublin
131bc92b77 Fix variable misspelling (#21774) 2023-09-25 12:32:50 +10:00
Ben Cooper
4ebb065f94 Fix combo_ref_from_layer respect different default layer [#21780] (#21781) 2023-09-25 12:32:20 +10:00
Pablo Martínez
a360900fbb [Enhancement] QP Getters (#21171) 2023-09-25 12:31:46 +10:00
RABijl
4e7e824a73 Rotary numpad (#21744)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-09-25 12:31:24 +10:00
DeskDaily
9d3c0018c1 Added Wyvern Hotswap by BredWorks (#21141)
Co-authored-by: Neil Brian Ramirez <nightlykeyboards@gmail.com>
Co-authored-by: Neil Brian Ramirez <nightlyboards@gmail.com>
2023-09-25 12:28:48 +10:00
Stefan Kerkmann
fb18ac2b10 [Core] Bump mouse endpoint packet size to 16 bytes (#21711) 2023-09-25 12:27:34 +10:00
Nebuleon
2f4e1a78ad Reduce popping during audio initialization using the additive DAC (#21642) 2023-09-25 12:26:32 +10:00
Nebuleon
1d94de5358 Optimize the additive DAC code, fixing performance-related hangs (#21662) 2023-09-25 12:26:02 +10:00
QMK Bot
7850f0d8c6 Merge remote-tracking branch 'origin/master' into develop 2023-09-25 02:25:32 +00:00
フィルターペーパー
246f3cb4d2 Improve directional transition of overlapping mouse keys (#21494) 2023-09-25 12:25:24 +10:00
T.A
133be8759a included keyboard.h. To use is_keyboard_master with a split with an i… (#21571)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: tokky <tokky@localhost-live.attlocal.net>
2023-09-25 12:24:57 +10:00
jacob-w-gable
99290b4c7e Add full solenoid support on split keyboards (#21583)
Co-authored-by: Jacob Gable <jacob.gable@statheros.tech>
2023-09-25 12:23:31 +10:00
QMK Bot
7a761ebf7d Merge remote-tracking branch 'origin/master' into develop 2023-09-25 01:51:10 +00:00
Nick Brassel
9b429bd12d Revert "Update feature_rgblight.md" (#22132) 2023-09-25 11:50:35 +10:00
QMK Bot
2821561618 Merge remote-tracking branch 'origin/master' into develop 2023-09-25 01:44:31 +00:00
Tom singleton
ee4e22d5ea Update feature_rgblight.md (#21483) 2023-09-25 11:43:55 +10:00
James Young
a69262398f KC60 Layout Standardization and Cleanup (#22125)
* Refactor `dbroqua` keymap

- use `layer_names` enum
- use QMK-native alias for `KC_TRNS`
- apply four-space indent
- grid-align keycodes
- refactor keymap to use `LAYOUT_all` macro.
  - The keycode for position [4, 9] (right half of Split Backspace)
    moves to the top row.
  - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split
    RShift) switch positions.

[refactor]

* Refactor `dbroqua_hhkb` keymap

- use `layer_names` enum
- use QMK-native alias for `KC_TRNS`
- apply four-space indent
- grid-align keycodes
- refactor keymap to use `LAYOUT_all` macro.
  - The keycode for position [4, 9] (right half of Split Backspace)
    moves to the top row.
  - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split
    RShift) switch positions.

[refactor]

* Touch-up `default` keymap

- fix keycode grid alignment

[style]

* Refactor `sgoodwin` keymap

- grid-align keycodes
- apply four-space indent
- refactor keymap to use `LAYOUT_all` macro.
  - The keycode for position [4, 9] (right half of Split Backspace)
    moves to the top row.
  - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split
    RShift) switch positions.

[refactor]

* Refactor `stanleylai` keymap

- delete `config.h` (use RGB config from keyboard `info.json`)
  - fixes non-compilation
- use `layer_names` enum
- use four-space indent
- update keycode grid alignment
- refactor keymap to use `LAYOUT_all` macro.
  - The keycode for position [4, 9] (right half of Split Backspace)
    moves to the top row.
  - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split
    RShift) switch positions.

[bugfix] [refactor]

* Touch-up `via` keymap

- fix keycode grid alignment

[style]

* Refactor `wigguno` keymap

- use four-space indent
- use QMK-native keycode alias for `KC_DELETE`
- refactor keymap to use `LAYOUT_all` macro.
  - The keycode for position [4, 9] (right half of Split Backspace)
    moves to the top row.
  - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split
    RShift) switch positions.

[refactor]

* Remove `LAYOUT` macro

Superseded by `LAYOUT_all`.

[chore]

* Add `LAYOUT_60_ansi_split_bs_rshift`

[enhancement]

* Add `LAYOUT_60_tsangan_hhkb`

[enhancement]

* Add `LAYOUT_60_ansi_tsangan`

[enhancement]

* Add `LAYOUT_60_iso_split_bs_rshift`

[enhancement]

* Add `LAYOUT_60_iso`

[enhancement]

* Add `LAYOUT_60_iso_tsangan_split_bs_rshift`

[enhancement]

* Add `LAYOUT_60_iso_tsangan`

[enhancement]

* Add `LAYOUT_60_hhkb`

[enhancement]

* Add `LAYOUT_60_true_hhkb`

[enhancement]

* Add layout/matrix diagram

[docs]

* Add `LAYOUT_60_abnt2`

[enhancement]

* Extend Community Layout support

Add support for community layouts:

  - `60_ansi_split_bs_rshift`
  - `60_ansi_tsangan`
  - `60_tsangan_hhkb`
  - `60_hhkb`
  - `60_abnt2`
  - `60_iso`
  - `60_iso_split_bs_rshift`
  - `60_iso_tsangan`

[enhancement]

* Fix `LAYOUT_60_abnt2` support

[bugfix]
2023-09-24 15:29:44 -07:00
Deddia Permana
b667408be3 add dp3000 rev2 featuring rgblight (#22084) 2023-09-24 11:04:39 -07:00
QMK Bot
2f7b7a1273 Merge remote-tracking branch 'origin/master' into develop 2023-09-24 07:57:44 +00:00
James Young
f8884640b0 YMDK Melody96 Matrix Touch-Up (#22113)
* Correct layout/matrix diagram

Correct swapped designations for ANSI Backslash and ANSI Enter keys.

[docs]

* Correct matrix data

Correct the matrix data for:

  - `LAYOUT_all`
  - `LAYOUT_96_ansi`
  - `LAYOUT_96_ansi_splitbs`

which all had the matrix positions for ANSI Backslash and ANSI Enter swapped.

[bugfix]

* Implement `LAYOUT_hotswap` directly

Implement `LAYOUT_hotswap` as its own layout, instead of aliasing it to
`LAYOUT_96_ansi`.

[bugfix]

* Specify primary support for Soldered PCBs

Current version of codebase primarily supports Soldered PCBs.

[enhancement] [docs]
2023-09-24 00:57:08 -07:00
Ryan
59787a2e51 input_club/infinity60: remove custom 3731 code, convert to LED Matrix (#22117)
* input_club/infinity60: remove custom 3731 code, convert to LED Matrix

* Add licences
2023-09-24 03:36:06 +01:00
Ryan
6424dadd37 Remove custom ISSI lighting code (#22073)
* Remove CU75 custom lighting

* Remove LFK78 custom lighting

* Remove LFK87 custom lighting

* Remove LFKPad custom lighting

* Remove Mini1800 custom lighting

* Remove SMK65 custom lighting

* Remove LFK65-HS custom lighting

* Remove LFKeyboards custom lighting

* Remove Meira custom lighting
2023-09-24 03:32:20 +01:00
Glen D'souza
9c340077f6 Fix lower cpi bound on PMW33XX (#22108) 2023-09-23 15:23:15 -07:00
QMK Bot
c9810facce Merge remote-tracking branch 'origin/master' into develop 2023-09-23 20:23:24 +00:00
Shandon Anderson
26b2288bde [Keyboard] Enable RGB_TEST animation on riot_pad (#22118)
Co-authored-by: ShandonCodes <shandon@shandon.codes>
2023-09-23 13:22:44 -07:00
QMK Bot
5271e89fa7 Merge remote-tracking branch 'origin/master' into develop 2023-09-23 08:34:54 +00:00
Ethan Perry
c0d7a43637 Add Jank RP2040 Dactyl (#21973)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-09-23 01:34:22 -07:00
QMK Bot
81ea182be4 Merge remote-tracking branch 'origin/master' into develop 2023-09-23 08:18:44 +00:00
lendunistus
bd2a33fe77 Add reminder about format-json to PR Checklist (#22055) 2023-09-23 01:18:11 -07:00
QMK Bot
5024835c6f Merge remote-tracking branch 'origin/master' into develop 2023-09-23 06:17:56 +00:00
James Young
9a5b631ed6 GMMK2 96% ISO: Correct layout data (#22101) 2023-09-22 23:17:15 -07:00
QMK Bot
4873d8c27d Merge remote-tracking branch 'origin/master' into develop 2023-09-23 05:46:47 +00:00
era
7f2f15bc1a [Keyboard] Add SIRIND Klein (#21951)
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2023-09-22 22:46:13 -07:00
QMK Bot
4f00ca8d51 Merge remote-tracking branch 'origin/master' into develop 2023-09-23 05:11:18 +00:00
Daniel Osipishin
4590b808da add subrezon/lancer keyboard (#20792)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Daniel Osipishin <danielos@retarus.de>
2023-09-22 22:10:35 -07:00
QMK Bot
389c8eea85 Merge remote-tracking branch 'origin/master' into develop 2023-09-23 04:46:07 +00:00
Duncan Sutherland
ef214e6a3c Add 'dactyl_tracer' keyboard (#20993)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-09-22 21:45:34 -07:00
QMK Bot
ac3a1c3569 Merge remote-tracking branch 'origin/master' into develop 2023-09-23 03:08:19 +00:00
Nick Brassel
73ffa4594d Fix up qmk mass-compile makefile indenting. (#22115) 2023-09-23 13:07:38 +10:00
QMK Bot
96bb79fd75 Merge remote-tracking branch 'origin/master' into develop 2023-09-23 02:56:05 +00:00
James Young
e001c3349b Shoc: physically arrange keymaps/layout macro (#22100) 2023-09-22 19:55:25 -07:00
QMK Bot
d5baa925e7 Merge remote-tracking branch 'origin/master' into develop 2023-09-23 02:19:10 +00:00
Ryan Neff
d49edbcf14 Added OLED SSD1306 128x64 to the verified working table (#22112) 2023-09-23 12:18:37 +10:00
QMK Bot
c08cf78b47 Merge remote-tracking branch 'origin/master' into develop 2023-09-22 23:00:16 +00:00
James Young
5cc5270aaf Royal Kludge RK G68 Community Layout Support (#22103)
* Rename `LAYOUT` to `LAYOUT_65_ansi`

[refactor]

* Enable Community Layout support

[enhancement]

* Touch-up keymaps

- fix keycode grid alignment

[style]

* Touch-up readme

- link to maintainer's GitHub profile
- specify codebase is for RGB version of RK G68
- update Hardware Availability links

[docs]
2023-09-22 15:59:41 -07:00
QMK Bot
8ea8b80b85 Merge remote-tracking branch 'origin/master' into develop 2023-09-22 02:12:53 +00:00
Nick Brassel
abd432fd7a Allow for qmk compile -kb all. (#22022) 2023-09-22 12:12:20 +10:00
QMK Bot
adc217137e Merge remote-tracking branch 'origin/master' into develop 2023-09-21 17:18:16 +00:00
Apteryks
a26e1c8b63 keymaps: Fix hacker_dvorak build. (#22102) 2023-09-21 11:17:38 -06:00
QMK Bot
ad7a405fa5 Merge remote-tracking branch 'origin/master' into develop 2023-09-21 06:02:13 +00:00
dztech
8c52bab930 add odinmini layout (#21983)
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-09-20 23:01:55 -07:00
dztech
dc2315ad85 add dz60v2 keyboard (#21862)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-09-20 23:01:38 -07:00
Ryan
f8cea06be3 RGBLight/Backlight: add prefixed driver defines (#22089) 2023-09-21 15:50:01 +10:00
QMK Bot
3062c98093 Merge remote-tracking branch 'origin/master' into develop 2023-09-21 05:46:11 +00:00
lalalademaxiya1
363dee82d8 Keychron q9 plus (#21399)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-09-20 22:45:36 -07:00
Richard Goulter
629ac9ae68 Add KPRepublic/BM40hsrgb rev2 (#16689)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2023-09-20 22:45:25 -07:00
QMK Bot
4df24bc05d Merge remote-tracking branch 'origin/master' into develop 2023-09-21 05:23:58 +00:00
Charles Strahan
5858efd6c9 kimiko: mirror encoder pins between halves (#21728) 2023-09-21 06:23:18 +01:00
QMK Bot
298fa76d1e Merge remote-tracking branch 'origin/master' into develop 2023-09-21 05:16:59 +00:00
QMK Bot
139a7fc6c2 Merge remote-tracking branch 'origin/master' into develop 2023-09-21 05:16:23 +00:00
James Young
e91bf4583f Quarkeys Studio Z67 Hotswap Community Layout Support (#22096) 2023-09-20 22:16:22 -07:00
James Young
f543a44836 Quarkeys Studio Z67 Solder Community Layout Support (#22095) 2023-09-20 22:15:45 -07:00
QMK Bot
656b931d70 Merge remote-tracking branch 'origin/master' into develop 2023-09-21 03:46:04 +00:00
Poring
4ec3e239ba [Keyboard] Add QCK-75 (#21180)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-09-20 20:45:29 -07:00
QMK Bot
966a560836 Merge remote-tracking branch 'origin/master' into develop 2023-09-21 03:03:05 +00:00
Duncan Sutherland
e56ea60058 amend 68_(ansi|iso) community_layouts in keyboards/ (#21835) 2023-09-20 20:02:32 -07:00
QMK Bot
53e543386e Merge remote-tracking branch 'origin/master' into develop 2023-09-21 02:43:26 +00:00
Joy Lee
4520a584e4 [Keyboard] Add rpk-001 keyboard (#21042)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Joy <chang.li@westberrytech.com>
2023-09-20 19:38:20 -07:00
QMK Bot
d820114560 Merge remote-tracking branch 'origin/master' into develop 2023-09-21 02:37:21 +00:00
temp4gh
b5b900200f Add funtions of Encoder and VIA for redragon/k667 (#21917)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: syc <squall_sha@163.com>
2023-09-20 19:36:40 -07:00
QMK Bot
b57eb73fcd Merge remote-tracking branch 'origin/master' into develop 2023-09-21 02:34:53 +00:00
Joe Scotto
3d1b9e98a4 Add ScottoLong Keyboard (#20938)
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-09-20 19:34:16 -07:00
Joe Scotto
e55220dbe0 Add ScottoMacrodeck Macropad (#20946)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-09-20 19:33:57 -07:00
Joe Scotto
9b69921491 Add ScottoFly Keyboard (#20939)
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-09-20 19:33:27 -07:00
QMK Bot
9edeec7f23 Merge remote-tracking branch 'origin/master' into develop 2023-09-21 02:33:26 +00:00
Joe Scotto
1c62cb7b42 Add ScottoMouse Handwired Macropad (#21074)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com>
2023-09-20 19:32:45 -07:00
QMK Bot
bb50721ddd Merge remote-tracking branch 'origin/master' into develop 2023-09-21 02:32:02 +00:00
Joe Scotto
4629d6a671 Add ScottoSlant Keyboard (#20942)
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-09-20 19:31:16 -07:00
Ryan
db68a95cae LED/RGB Matrix: prefix driver defines (#22088) 2023-09-21 12:16:17 +10:00
QMK Bot
6b5cb01834 Merge remote-tracking branch 'origin/master' into develop 2023-09-21 02:14:35 +00:00
Duncan Sutherland
6dc482b197 apply 66_(ansi|iso) to keyboards (#21834) 2023-09-20 19:14:00 -07:00
QMK Bot
bc9bb2f3be Merge remote-tracking branch 'origin/master' into develop 2023-09-21 02:11:58 +00:00
Dan Ford
22c576b40b [Keyboard] add Quokka keyboard (#20979)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-09-20 19:11:24 -07:00
Duncan Sutherland
29ffe804b8 Modernize dactyl_manuform/dmote keyboard (#20427)
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-09-20 19:10:59 -07:00
QMK Bot
b6a881ba32 Merge remote-tracking branch 'origin/master' into develop 2023-09-21 02:04:07 +00:00
peepeetee
fffea62005 [Keyboard] Momokai Aurora (#20419)
Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2023-09-20 19:03:32 -07:00
QMK Bot
21c396a3aa Merge remote-tracking branch 'origin/master' into develop 2023-09-20 13:14:27 +00:00
Joel Challis
cdff9b8da7 Restrict "feature" and "animation" keys (#21895) 2023-09-20 14:13:51 +01:00
Joel Challis
9a4c307740 Migrate dynamic_keymap.layer_count >= 4 (#22087) 2023-09-20 14:11:33 +01:00
Ryan
4b26d9b62b Update AW20216S LED type (#22072)
* Update AW20216S LED type

* Remove mattgauf keymap
2023-09-20 11:50:52 +01:00
QMK Bot
3575e27ece Merge remote-tracking branch 'origin/master' into develop 2023-09-20 10:39:15 +00:00
Duncan Sutherland
16ad362e67 amend 96_(ansi|iso) community_layouts in keyboards/ (#22066) 2023-09-20 03:38:36 -07:00
Joel Challis
f03c470adf Remove ALLOW_WARNINGS and PICO_INTRINSICS_ENABLED (#22085) 2023-09-20 10:27:54 +01:00
QMK Bot
c2c7b7af7a Merge remote-tracking branch 'origin/master' into develop 2023-09-20 06:36:13 +00:00
James Young
05dfe9f9c5 Alchemist Keyboards OGRN Layout Addition (#22080)
* Add layout/matrix diagram

[docs]

* Friendly-format `info.json`

[style]

* Add `LAYOUT_ortho_5x4`

[enhancement]

* Touch-up keymaps

- update grid-alignment (layer-to-layer consistency)
- fix box drawings

[style]

* Extend Community Layout support

Add `ortho_5x4` to supported Community Layouts.

[enhancement]
2023-09-19 23:35:37 -07:00
Ryan
2aacda3235 Move PACKED define to util.h (#22074) 2023-09-20 07:33:54 +01:00
QMK Bot
7bfd775a5c Merge remote-tracking branch 'origin/master' into develop 2023-09-19 23:42:53 +00:00
James Young
2742935c54 SapuSeven MacroPad12: rename LAYOUT to LAYOUT_ortho_3x4 (#22081) 2023-09-20 00:42:12 +01:00
QMK Bot
f7f775a4ef Merge remote-tracking branch 'origin/master' into develop 2023-09-19 23:09:33 +00:00
Deddia Permana
8c92c0a59d Add OLED logo DP3000 macropad (#21936) 2023-09-19 17:08:58 -06:00
QMK Bot
16222f53a3 Merge remote-tracking branch 'origin/master' into develop 2023-09-19 22:08:52 +00:00
James Young
4ce3a1c1e9 Ubest VN Community Layout Support (#22070)
* Add layout/matrix diagram

[docs]

* Rename `LAYOUT` to `LAYOUT_all`

[refactor]

* Add `LAYOUT_65_ansi_split_bs`

[enhancement]

* Add `LAYOUT_65_ansi`

[enhancement]

* Add `LAYOUT_65_iso_split_bs`

[enhancement]

* Add `LAYOUT_65_iso`

[enhancement]

* Enable Community Layout support

[enhancement]

* Touch-up keymaps

- apply four-space indent
- grid-align keycodes

[style]
2023-09-19 15:08:09 -07:00
QMK Bot
0c6c51eb63 Merge remote-tracking branch 'origin/master' into develop 2023-09-19 21:32:52 +00:00
James Young
56a87efbac DZTech Pluto Community Layout support (#22069)
* Add layout/matrix diagram

[docs]

* Friendly-format `info.json`

- apply four-space indent
- sort JSON keys in layout objects

[style]

* Correct `LAYOUT_all` data

Correct key sizes/positions of:

- ANSI Backslash [1, 13]
- ANSI Enter [1, 14]
- Fn [3, 13]

[chore]

* Correct `LAYOUT_iso` data

Correct position of Fn key [3, 13].

[chore]

* Add `LAYOUT_tkl_nofrow_ansi_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_nofrow_ansi`

[enhancement]

* Add `LAYOUT_tkl_nofrow_ansi_tsangan_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_nofrow_ansi_tsangan`

[enhancement]

* Add `LAYOUT_tkl_nofrow_ansi_wkl_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_nofrow_ansi_wkl`

[enhancement]

* Add `LAYOUT_tkl_nofrow_iso_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_nofrow_iso`

[enhancement]

* Add `LAYOUT_tkl_nofrow_iso_tsangan_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_nofrow_iso_tsangan`

[enhancement]

* Add `LAYOUT_tkl_nofrow_iso_wkl_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_nofrow_iso_wkl`

[enhancement]

* Enable Community Layout support

[enhancement]

* Touch-up keymaps

Update keycode grid alignment.

[style]
2023-09-19 14:32:16 -07:00
Ryan
8f22105289 Add and use I2C address defines for ISSI LED drivers (#22008) 2023-09-19 19:31:54 +10:00
Duncan Sutherland
74360d0a01 [Keymap] fix unxmaal for 60_iso (#21975) 2023-09-18 19:37:14 -07:00
QMK Bot
c7972f2645 Merge remote-tracking branch 'origin/master' into develop 2023-09-19 01:00:45 +00:00
Shandon Anderson
ef31109ad2 [Keyboard] Add riot pad (#22060)
Co-authored-by: ShandonCodes <shandon@shandon.codes>
2023-09-18 18:00:11 -07:00
QMK Bot
8f9847248a Merge remote-tracking branch 'origin/master' into develop 2023-09-18 18:56:34 +00:00
Dasky
16f2a3e2f8 Add missing gpio include to ps2 vendor (#22063) 2023-09-18 19:55:51 +01:00
QMK Bot
db6b97e90b Merge remote-tracking branch 'origin/master' into develop 2023-09-18 12:53:28 +00:00
Filip Sund
48b4ce6ddb Adding support for the Pteron56 (PCB) keyboard (#21731) 2023-09-18 13:52:48 +01:00
dexter93
7654549bff Add missing fullsize extended default layouts (#21402) 2023-09-18 16:47:54 +10:00
QMK Bot
a32c4ae918 Merge remote-tracking branch 'origin/master' into develop 2023-09-18 04:57:45 +00:00
James Young
cd095c817e Wolf Ziggurat Layout Additions (#22053)
* Add layout/matrix diagram

[docs]

* Friendly-format `info.json`

[style]

* Touch-up layout data

Move the ISO Hash key to the main key area.

[chore]

* Rename `LAYOUT` to `LAYOUT_all`

[refactor]

* Add `LAYOUT_65_xt_ansi_blocker_tsangan_split_bs`

[enhancement]

* Add `LAYOUT_65_xt_ansi_blocker_tsangan`

[enhancement]

* Add `LAYOUT_65_xt_iso_blocker_tsangan_split_bs`

[enhancement]

* Add `LAYOUT_65_xt_iso_blocker_tsangan`

[enhancement]
2023-09-17 21:57:03 -07:00
QMK Bot
a779e82bc7 Merge remote-tracking branch 'origin/master' into develop 2023-09-18 04:26:54 +00:00
James Young
6ba53f661a Wolf Silhouette Community Layout Support (#22052)
* Add layout/matrix diagram

[docs]

* Friendly-format `info.json`

[style]

* Touch-up layout data

Move the ISO Hash key to the main key area.

[chore]

* Rename `LAYOUT` to `LAYOUT_all`

[refactor]

* Add `LAYOUT_tkl_nofrow_ansi_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_nofrow_ansi`

[enhancement]

* Add `LAYOUT_tkl_nofrow_ansi_tsangan_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_nofrow_ansi_tsangan`

[enhancement]

* Add `LAYOUT_tkl_nofrow_ansi_wkl_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_nofrow_ansi_wkl`

[enhancement]

* Add `LAYOUT_tkl_nofrow_iso_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_nofrow_iso`

[enhancement]

* Add `LAYOUT_tkl_nofrow_iso_tsangan_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_nofrow_iso_tsangan`

[enhancement]

* Add `LAYOUT_tkl_nofrow_iso_wkl_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_nofrow_iso_wkl`

[enhancement]

* Enable Community Layout support

[enhancement]
2023-09-17 21:26:13 -07:00
QMK Bot
25cf8546fe Merge remote-tracking branch 'origin/master' into develop 2023-09-18 03:50:49 +00:00
James Young
25df4ba6bd Wolf Neely65 Touch-Up (#22045)
* Add layout/matrix diagram

[docs]

* Friendly-format `info.json`

[style]

* Touch-up keymaps

- grid-align keycodes
- use QMK-native keycode aliases

[refactor]

* Fix keymaps

Fix keycodes being assigned out of order with respect to `info.json`.

- move XT function keys to left side
- move keycodes for position [2, 14] from Home Row to Number Row

[bugfix]

* Rename `LAYOUT` to `LAYOUT_65_xt_ansi_blocker_tsangan_wkl_split_bs`

[refactor]

* Add `LAYOUT_65_xt_ansi_blocker_tsangan_wkl`

[enhancement]
2023-09-17 20:50:14 -07:00
QMK Bot
b3c397ba08 Merge remote-tracking branch 'origin/master' into develop 2023-09-18 03:18:31 +00:00
James Young
b5181e3d06 Viktus Styrka Topre Layout Standardization and Touch-Up (#22044)
* Add layout/matrix diagram

[docs]

* Alias `LAYOUT_all` to `LAYOUT_split_6u`

`LAYOUT_all` and `LAYOUT_split_6u` represent the same matrix positions
and sequence, so implement the former as an alias.

[refactor]

* Touch-up keymaps

- grid-align keycodes
- use QMK-native keycode aliases

[chore]

* Friendly-format `info.json`

[style]

* Correct layout data

Correct key sizes/positioning on the bottom row.

[chore]

* Rename `LAYOUT_2u_6u` to `LAYOUT_65_xt_ansi_blocker`

[refactor]

* Rename `LAYOUT_2u_7u` to `LAYOUT_65_xt_ansi_blocker_tsangan`

[refactor]

* Rename `LAYOUT_split_6u` to `LAYOUT_65_xt_ansi_blocker_split_bs`

[refactor]

* Rename `LAYOUT_split_7u` to `LAYOUT_65_xt_ansi_blocker_tsangan_split_bs`

[refactor]
2023-09-17 20:17:51 -07:00
QMK Bot
e0b3b12253 Merge remote-tracking branch 'origin/master' into develop 2023-09-17 17:42:01 +00:00
Controller Works
6129f5f68b Add all RGB Matrix Animations to city42 (#21992) 2023-09-17 11:41:26 -06:00
QMK Bot
6e98c80eaa Merge remote-tracking branch 'origin/master' into develop 2023-09-17 17:36:04 +00:00
Moritz Plattner
652c5a9410 geistmaschine/macropod: fix issues waking up after suspend on apple devices (#22023) 2023-09-17 11:35:29 -06:00
QMK Bot
f457f0a26d Merge remote-tracking branch 'origin/master' into develop 2023-09-17 17:33:19 +00:00
Yak
9f9ad95fb4 Fix paragon encoder pinout for soldered version (#22043) 2023-09-17 11:32:44 -06:00
QMK Bot
78fdebb130 Merge remote-tracking branch 'origin/master' into develop 2023-09-17 12:19:00 +00:00
Constantine Karos
1fbd45a594 Add missing gpio and chibios defs to uart.h (#22033) 2023-09-17 13:18:26 +01:00
Ryan
1ea54a2d8d Complete RGB Matrix support for IS31FL3218 (#22004) 2023-09-17 22:11:16 +10:00
QMK Bot
32126dc4f0 Merge remote-tracking branch 'origin/master' into develop 2023-09-17 07:12:06 +00:00
Joel Challis
39fafdac0f Move Digitizer to "Software Features" (#22031) 2023-09-17 08:11:32 +01:00
Joel Challis
f956ed7366 Remove config.h which only set DYNAMIC_KEYMAP_LAYER_COUNT (#22034) 2023-09-17 07:19:40 +01:00
Thomas Weißschuh
615ca78567 directly use object files when linking ELF (#22025) 2023-09-17 14:25:46 +10:00
David Hoelscher
169b0f33f6 Lvgl rate control (#22049) 2023-09-17 14:25:14 +10:00
QMK Bot
451ac2aa1e Merge remote-tracking branch 'origin/master' into develop 2023-09-16 21:19:44 +00:00
James Young
4162d1f056 Sho Studios ARC Layout Addition (#22037)
* Add layout/matrix diagram

[docs]

* Format `info.json`

Apply four-space indent.

[style]

* Add `LAYOUT_ansi_split_bs`

[enhancement]
2023-09-16 14:19:09 -07:00
QMK Bot
e8c6d1c620 Merge remote-tracking branch 'origin/master' into develop 2023-09-16 20:42:20 +00:00
James Young
6b1b746f66 RuckerMachine RM Fullsize Layout Additions (#22036)
* Add layout/matrix diagram

[docs]

* Rename `LAYOUT` to `LAYOUT_all`

[refactor]

* Add `LAYOUT_fullsize_108_ansi`

[enhancement]

* Add `LAYOUT_fullsize_108_ansi_tsangan`

[enhancement]
2023-09-16 13:41:40 -07:00
QMK Bot
f4a10933ca Merge remote-tracking branch 'origin/master' into develop 2023-09-15 23:40:17 +00:00
James Young
71d5d14c13 Rico Phoenix Project No. 1 Layout Additions (#22035)
* Add layout/matrix diagram

[docs]

* Rename `LAYOUT` to `LAYOUT_all`

[refactor]

* Add `LAYOUT_65_ansi_rwkl_split_bs`

[enhancement]

* Add `LAYOUT_65_ansi_rwkl`

[enhancement]

* Add `LAYOUT_65_ansi_wkl_split_bs`

[enhancement]

* Add `LAYOUT_65_ansi_wkl`

[enhancement]

* Add `LAYOUT_65_iso_rwkl_split_bs`

[enhancement]

* Add `LAYOUT_65_iso_rwkl`

[enhancement]

* Add `LAYOUT_65_iso_wkl_split_bs`

[enhancement]

* Add `LAYOUT_65_iso_wkl`

[enhancement]
2023-09-15 16:39:34 -07:00
QMK Bot
21c5d2de39 Merge remote-tracking branch 'origin/master' into develop 2023-09-15 22:26:44 +00:00
James Young
4767554562 Raindrop Layout Updates (#22032)
* Add layout/matrix diagram

[docs]

* Rename `LAYOUT_all` to `LAYOUT_64_ansi_split_bs`

[refactor]

* Add `LAYOUT_60_ansi_split_bs_rshift`

[enhancement]
2023-09-15 15:25:52 -07:00
QMK Bot
241415ecb6 Merge remote-tracking branch 'origin/master' into develop 2023-09-15 21:45:13 +00:00
TreasureTypes
d83ac7a124 [Keyboard] Adding Treasure TYPE-9 series III (#21748)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-09-15 14:44:41 -07:00
dztech
85c2b03507 [Keyboard] Rename og60 to tofu60 (#21684)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-09-15 12:36:31 -07:00
Less/Rikki
134b60bb25 [keyboard] tominabox1/le_chiffre oled rework (#21611)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-09-15 12:06:11 -07:00
QMK Bot
35be48f525 Merge remote-tracking branch 'origin/master' into develop 2023-09-15 18:57:15 +00:00
ziptyze
29d1a2cc51 [Keyboard] add 1upkeyboards 1upslider8 (#21546)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-09-15 11:56:41 -07:00
QMK Bot
6840589ca5 Merge remote-tracking branch 'origin/master' into develop 2023-09-15 18:34:55 +00:00
harveysch
e7ae5ec07c [Keyboard] Add splitkb.com's Aurora Helix (#21871)
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-09-15 11:34:21 -07:00
QMK Bot
f0e2dd4b5e Merge remote-tracking branch 'origin/master' into develop 2023-09-15 07:47:49 +00:00
James Young
49f1cbd40e Neson Design Nico Layout Additions (#22027)
* Add layout/matrix diagram

[docs]

* Rename `LAYOUT` to `LAYOUT_65_xt_ansi_blocker_split_bs`

[refactor]

* Add `LAYOUT_65_xt_ansi_blocker`

[enhancement]

* Add `LAYOUT_65_xt_ansi_blocker_tsangan`

[enhancement]

* Add `LAYOUT_65_xt_ansi_blocker_tsangan_split_bs`

[enhancement]

* Touch-up keymaps

- grid-align keycodes
- use four-space indent
- use QMK-native keycode aliases

[refactor]

* Update `via` keymap

Update the `via` keymaps to have the same key assignments as the
`default` keymap, which is more fleshed out.

[chore]
2023-09-15 00:47:10 -07:00
QMK Bot
8e3a2b9755 Merge remote-tracking branch 'origin/master' into develop 2023-09-15 06:19:03 +00:00
James Young
06dfa1cafc Nix Studio Lilith Layout Additions (#22028)
* Add layout/matrix diagram

[docs]

* Sort keys in `info.json`

[style]

* Add `LAYOUT_65_ansi_blocker_split_bs`

[enhancement]

* Add `LAYOUT_65_ansi_blocker_tsangan`

[enhancement]

* Add `LAYOUT_65_iso_blocker_split_bs`

[enhancement]

* Add `LAYOUT_65_iso_blocker_tsangan_split_bs`

[enhancement]

* Extend Community Layout support

[enhancement]
2023-09-14 23:18:28 -07:00
QMK Bot
8ee21ac16d Merge remote-tracking branch 'origin/master' into develop 2023-09-15 01:08:26 +00:00
James Young
598303fa95 OwLab Jelly Evolv Solder Layout Additions (#22029)
* Add layout/matrix diagram

[docs]

* Friendly-format `info.json`

[style]

* Rename `LAYOUT` to `LAYOUT_all`

[refactor]

* Add `LAYOUT_ansi_blocker`

[enhancement]

* Add `LAYOUT_ansi_blocker_split_bs`

[enhancement]

* Add `LAYOUT_ansi_blocker_tsangan_split_bs`

[enhancement]

* Add `LAYOUT_ansi_blocker_tsangan`

[enhancement]

* Add `LAYOUT_iso_blocker`

[enhancement]

* Add `LAYOUT_iso_blocker_split_bs`

[enhancement]

* Add `LAYOUT_iso_blocker_tsangan_split_bs`

[enhancement]

* Add `LAYOUT_iso_blocker_tsangan`

[enhancement]
2023-09-14 18:07:48 -07:00
QMK Bot
16ca3121d2 Merge remote-tracking branch 'origin/master' into develop 2023-09-14 22:47:47 +00:00
James Young
3d86b92511 QVEX Tech Lynepad2 Layout Update (#22030)
* Add layout/matrix diagram

[docs]

* Update layout data

Update layout data to disambiguate the key/joystick/thumbpad functions
in Configurator.

[chore]
2023-09-14 23:47:03 +01:00
QMK Bot
24a922b54b Merge remote-tracking branch 'origin/master' into develop 2023-09-14 20:39:17 +00:00
Andrew Kannan
46d679ab11 qmk format-json: Add an in-place mode to format json command (#21610) 2023-09-14 21:38:42 +01:00
QMK Bot
f9777dfda4 Merge remote-tracking branch 'origin/master' into develop 2023-09-14 20:37:59 +00:00
James Young
4f26a8b308 MonsGeek M1: Correct layout data (#22026)
Apply vertical offset to the arrow keys.

[chore]
2023-09-14 21:37:24 +01:00
Joel Challis
fe00bb9746 Migrate i2c EEPROM_DRIVER to info.json (#22013) 2023-09-14 20:50:07 +01:00
Joel Challis
97464e470c Remove duplication of EEPROM defaults (#22011) 2023-09-14 20:46:50 +01:00
QMK Bot
f739fa19e7 Merge remote-tracking branch 'origin/master' into develop 2023-09-14 19:44:50 +00:00
James Young
58c2dae32e Mode M256-WH Community Layout Support (#22019)
* Add layout/matrix diagram

[docs]

* Rename `LAYOUT` to `LAYOUT_65_ansi_blocker`

[refactor]

* Add `LAYOUT_65_ansi_blocker_tsangan`

[enhancement]

* Enable Community Layout support

[enhancement]
2023-09-14 12:44:07 -07:00
QMK Bot
43ae1370f3 Merge remote-tracking branch 'origin/master' into develop 2023-09-14 19:07:56 +00:00
James Young
294fc6caef Mode M256-WS Community Layout Support (#22020)
* Add layout/matrix diagram

[docs]

* Rename `LAYOUT` to `LAYOUT_all`

[refactor]

* Add `LAYOUT_65_ansi_blocker_split_bs`

[enhancement]

* Add `LAYOUT_65_ansi_blocker`

[enhancement]

* Add `LAYOUT_65_ansi_blocker_tsangan_split_bs`

[enhancement]

* Add `LAYOUT_65_ansi_blocker_tsangan`

[enhancement]

* Add `LAYOUT_65_iso_blocker_split_bs`

[enhancement]

* Add `LAYOUT_65_iso_blocker`

[enhancement]

* patch `LAYOUT_65_iso_blocker_split_bs`

* patch `LAYOUT_65_iso_blocker`

* Add `LAYOUT_65_iso_blocker_tsangan_split_bs`

[enhancement]

* Add `LAYOUT_65_iso_blocker_tsangan`

[enhancement]

* Enable Community Layout support

[enhancement]
2023-09-14 12:07:22 -07:00
QMK Bot
4e4ef11cf1 Merge remote-tracking branch 'origin/master' into develop 2023-09-14 17:58:24 +00:00
James Young
269c7b6e5b Mechlovin Zed65 910 Layout Standardization (#22018)
* Add layout/matrix diagram

[docs]

* Rename `LAYOUT_65_iso_tsangan_split_bs` to `LAYOUT_iso_split_bs`

[refactor]

* Rename `LAYOUT_65_ansi_tsangan` to `LAYOUT_ansi`

[refactor]

* Rename `LAYOUT_65_ansi_blocker_tsangan` to `LAYOUT_ansi_blocker_tsangan`

[refactor]

* Rename `LAYOUT_65_ansi_tsangan_split_bs` to `LAYOUT_all`

[refactor]
2023-09-14 10:57:44 -07:00
QMK Bot
2b50cd7989 Merge remote-tracking branch 'origin/master' into develop 2023-09-14 17:20:55 +00:00
James Young
cfe52b6e6e Maze Studio Jocker 1800 Layout Additions (#22016)
* Add layout/matrix diagram

[docs]

* Rename `LAYOUT` to `LAYOUT_ansi_split_bs`

[refactor]

* Add `LAYOUT_ansi`

[enhancement]

* Add `LAYOUT_ansi_wkl_split_bs`

[enhancement]

* Add `LAYOUT_ansi_wkl`

[enhancement]
2023-09-14 10:20:14 -07:00
Drashna Jaelre
9c2c96a20e [Bug] Fix default layer value in eeconfig_init (#21909)
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-09-14 10:17:15 -07:00
QMK Bot
99a225e1a2 Merge remote-tracking branch 'origin/master' into develop 2023-09-14 09:48:45 +00:00
James Young
78eb69ead5 Linworks Fave60a Community Layout Support (#22015)
* Friendly-format `info.json`

[style]

* Correct layout data

[chore]

* Add layout/matrix diagram

[docs]

* Rename `LAYOUT` to `LAYOUT_60_tsangan_hhkb`

[refactor]

* Add `LAYOUT_60_ansi_tsangan`

[enhancement]

* Enable Community Layout support

[enhancement]
2023-09-14 02:48:09 -07:00
QMK Bot
98f0c0895b Merge remote-tracking branch 'origin/master' into develop 2023-09-14 09:16:50 +00:00
James Young
02e6c04ac2 Krado Industries Promenade Layout Additions (#22014)
* Add layout/matrix diagram

[docs]

* Rename `LAYOUT` to `LAYOUT_all`

[refactor]

* Correct key order

[bugfix]

* Add `LAYOUT_2x2u`

[enhancement]

* Add `LAYOUT_2x3u`

[enhancement]

* Add `LAYOUT_6u_space`

[enhancement]

* Add `LAYOUT_7u_space`

[enhancement]

* Touch-up `via` keymap

Update keycode grid alignment to match the `default` keymap.

[style]
2023-09-14 02:16:04 -07:00
Chris Salch
d8e100ae3c Allow force flush of oled display (#20953)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-09-14 01:20:03 -07:00
Joel Challis
b9d6bfe927 Fix input_club/k_type when RGB Matrix disabled (#22021) 2023-09-14 17:23:06 +10:00
Ryan
76daf29ef0 Add and use PWM frequency defines for ISSI LED drivers (#22009) 2023-09-14 08:02:40 +01:00
Ryan
f9ed1e3ebc fc660c/fc980c: clean up actuation point adjustment code (#21964)
Co-authored-by: Joel Challis <git@zvecr.com>
2023-09-14 13:57:10 +10:00
QMK Bot
20cbe372a6 Merge remote-tracking branch 'origin/master' into develop 2023-09-14 03:08:39 +00:00
Luis Garcia
e67a4ba7ce Update to 'peterfalken' userspace configurations (#21836) 2023-09-14 13:08:00 +10:00
QMK Bot
794afbd1c1 Merge remote-tracking branch 'origin/master' into develop 2023-09-14 02:44:04 +00:00
James Young
9f0f39555c Kopibeng XT87 Layout Additions & Touch-Up (#22002)
* Add `LAYOUT_tkl_ansi_wkl_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_ansi_wkl`

[enhancement]

* Add `LAYOUT_tkl_iso_wkl_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_iso_wkl`

[enhancement]

* Correct layout data

Correct key positioning on the function row.

[enhancement]

* Friendly-format `info.json`

[style]

* Move ISO Enter to Home Row

Corrects the implementation of the ISO Community Layouts.

[bugfix]
2023-09-13 19:43:31 -07:00
QMK Bot
7d81d333f2 Merge remote-tracking branch 'origin/master' into develop 2023-09-14 01:07:09 +00:00
James Young
f4a702e49f Kibou Suisei Layout Addition (#22001)
* Add layout/matrix diagram

[docs]

* Rename `LAYOUT` to `LAYOUT_65_ansi_blocker_tsangan_wkl_split_bs`

[refactor]

* Add `LAYOUT_65_ansi_blocker_tsangan_wkl`

[enhancement]
2023-09-13 18:06:19 -07:00
QMK Bot
7c4d3d13e3 Merge remote-tracking branch 'origin/master' into develop 2023-09-14 00:47:59 +00:00
James Young
32f060366f Keebio NyquistPad Layout Updates (#22000)
* Rename `LAYOUT` to `LAYOUT_ortho_5x6`

[refactor]

* Add `LAYOUT_ortho_5x6_1x2u`

[enhancement]
2023-09-13 17:47:25 -07:00
Joel Challis
00feff656f Migrate WEAR_LEVELING_*_SIZE to info.json (#22010) 2023-09-14 09:13:19 +10:00
QMK Bot
36b4e290c8 Merge remote-tracking branch 'origin/master' into develop 2023-09-13 21:55:21 +00:00
James Young
c6841a51de Jaykeeb Sebelas: Standardize Layout Names (#21999)
* Rename `LAYOUT_65_ansi_blocker` to `LAYOUT_ansi_blocker`

[refactor]

* Rename `LAYOUT_65_ansi_blocker_split_bs` to `LAYOUT_ansi_blocker_split_bs`

[refactor]

* Rename `LAYOUT_65_ansi_blocker_tsangan` to `LAYOUT_ansi_blocker_tsangan`

[refactor]

* Rename `LAYOUT_65_ansi_blocker_tsangan_split_bs` to `LAYOUT_ansi_blocker_tsangan_split_bs`

[refactor]
2023-09-13 14:54:46 -07:00
James Young
5a69d3006a Merge remote-tracking branch 'upstream/master' into develop
Fixes a merge conflict originating from #21998
(33d7fa1180).
2023-09-13 14:28:26 -07:00
Joel Challis
1b637287a1 Default wear leveling logical size to half backing (#22006) 2023-09-14 07:13:21 +10:00
James Young
33d7fa1180 Inland MK47 Community Layout Support (#21998)
* Rename `LAYOUT` to `LAYOUT_planck_mit`

[refactor]

* Enable Community Layout support

[enhancement]

* Touch-up keymaps

- grid-align keycodes

[style]
2023-09-13 13:44:05 -07:00
Ryan
8136eda6d4 is31fl3731: driver naming cleanups (#21918) 2023-09-13 22:53:15 +10:00
Ryan
1cbb5ae99e is31fl3733: driver naming cleanups (#21905) 2023-09-13 22:52:16 +10:00
Ryan
2d41443e6a is31fl3736: driver naming cleanups (#21903) 2023-09-13 22:50:20 +10:00
Ryan
d36f73a431 is31fl3737: driver naming cleanups (#21904) 2023-09-13 22:49:29 +10:00
Ryan
4a0badfb34 is31fl3741: driver naming cleanups (#21929) 2023-09-13 22:48:01 +10:00
Ryan
35aceab1a4 ckled2001: driver naming cleanups (#21890) 2023-09-13 22:47:01 +10:00
Joel Challis
eb2db05e8a Migrate spi EEPROM_DRIVER to info.json (#21991) 2023-09-13 13:45:49 +01:00
Ryan
a0aebe5cd5 aw20216: driver naming cleanups (#21891) 2023-09-13 22:45:17 +10:00
Thomas Weißschuh
b9f2121d10 chibios: mark boot2 bootlader data readonly (#21986) 2023-09-13 16:48:38 +10:00
QMK Bot
12b3dd36f3 Merge remote-tracking branch 'origin/master' into develop 2023-09-13 06:05:57 +00:00
James Young
e6ce481179 Handwired ScottoKeebs Configurator Updates (#21990)
* ScottoKeebs ScottoAlp: Correct layout data

[enhancement]

* ScottoKeebs ScottoCMD: Correct layout data

[enhancement]

* ScottoKeebs ScottoErgo: Correct layout data

Add hand separation and vertical stagger to the layout data.

[enhancement]

* ScottoKeebs ScottoFrog: Correct layout data

[enhancement]

* ScottoKeebs ScottoGame: Correct layout data

[enhancement]

* ScottoKeebs ScottoInvader: Correct layout data

[enhancement]

* ScottoKeebs ScottoNum: Correct layout data

[enhancement]

* ScottoKeebs ScottoSplit: Correct layout data

[enhancement]

* ScottoKeebs ScottoStarter: Correct layout data

[enhancement]
2023-09-12 23:05:10 -07:00
Joel Challis
de381ad3b7 Generate keymap.json config options more forcefully (#21960) 2023-09-13 01:12:46 +01:00
QMK Bot
920a8f658c Merge remote-tracking branch 'origin/master' into develop 2023-09-12 20:58:11 +00:00
James Young
4468662d64 Gray Studio Think65 v3 Layout Additions (#21930)
* Add layout/matrix diagram

[docs]

* Format `info.json` as strict JSON

[style]

* Add `LAYOUT_all`

[enhancement]

* Refactor keymaps to use `LAYOUT_all`

Refactor the `default` and `via` keymaps to use the `LAYOUT_all` macro.

- change second Left Shift key to `KC_NUBS`
- insert `KC_NUHS` keycode
- update keycode grid alignment
- remove trailing whitespace

[refactor]

* Rename `LAYOUT_65_blocker` to `LAYOUT_ansi_blocker`

[refactor]

* Rename `LAYOUT_65_iso_blocker` to `LAYOUT_iso_blocker`

[refactor]

* Correct `LAYOUT_iso_blocker` matrix data

The Quote key was mapped as [1, 14] instead of [2, 12].

[bugfix]

* Add `LAYOUT_ansi_blocker_split_bs`

[enhancement]

* Add `LAYOUT_ansi_blocker_tsangan_split_bs`

[enhancement]

* Add `LAYOUT_ansi_blocker_tsangan`

[enhancement]

* Add `LAYOUT_iso_blocker_split_bs`

[enhancement]

* Add `LAYOUT_iso_blocker_tsangan_split_bs`

[enhancement]

* Add `LAYOUT_iso_blocker_tsangan`

[enhancement]
2023-09-12 13:57:25 -07:00
QMK Bot
3cb09bed1f Merge remote-tracking branch 'origin/master' into develop 2023-09-12 19:58:20 +00:00
James Young
91e0e46e4a Drewkeys Mercury65 Layout Additions (#21924)
* Rename `LAYOUT` to `LAYOUT_all`

[refactor]

* Add layout/matrix diagram

[docs]

* Correct `LAYOUT_all` data

Correct the order of the Up arrow and End keys.

[enhancement]

* Tidy-up `info.json` formatting

- add line breaks between physical rows
- remove trailing spaces

[style]

* Add `LAYOUT_iso_blocker_split_bs`

[enhancement]

* Add `LAYOUT_iso_blocker_tsangan_split_bs`

[enhancement]

* Add `LAYOUT_ansi_blocker_split_bs`

[enhancement]

* Add `LAYOUT_ansi_blocker_tsangan_split_bs`

[enhancement]
2023-09-12 12:57:45 -07:00
zvecr
7b313dbc89 Migrate stray WS2812_DRIVER to info.json 2023-09-12 10:30:54 +01:00
Joel Challis
8975dc6c3b Remove duplication of STM32L432 EEPROM defaults (#21981) 2023-09-12 10:09:31 +01:00
Joel Challis
6adf461aa0 Remove duplication of RP2040 EEPROM defaults (#21979) 2023-09-12 07:07:40 +01:00
Joy Lee
bd2e59af60 Fixed WB32 MCU remote wakeup issue (#20863)
Co-authored-by: Joy <chang.li@westberrytech.com>
2023-09-12 15:57:18 +10:00
Joel Challis
909054c357 Migrate spi_flash WEAR_LEVELING_DRIVER to info.json (#21978) 2023-09-12 06:47:12 +01:00
Joel Challis
06cec720dd Remove 'Firmware size check does not yet support' message (#21977) 2023-09-12 05:16:39 +01:00
QMK Bot
ad4fc42e6b Merge remote-tracking branch 'origin/master' into develop 2023-09-12 01:55:42 +00:00
Dasky
62105b5c07 Remove oversize binaries (#21976)
This stops a situation where a user could end up flashing oversize firmware soft bricking hardware.
2023-09-12 02:55:05 +01:00
QMK Bot
d046f73b49 Merge remote-tracking branch 'origin/master' into develop 2023-09-11 20:43:51 +00:00
Falco Gerritsjans
3561c3a1f9 Repair malformed links in keyboard README files (#21969) 2023-09-11 21:43:16 +01:00
QMK Bot
51d9520be7 Merge remote-tracking branch 'origin/master' into develop 2023-09-09 19:16:32 +00:00
James Young
9a29ddf6af dnworks FRLTKL Community Layout support (#21922)
* Add layout/matrix diagram

[docs]

* Rename `LAYOUT` to `LAYOUT_all`

[refactor]

* Add `LAYOUT_tkl_nofrow_iso_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_nofrow_iso`

[enhancement]

* Add `LAYOUT_tkl_nofrow_iso_tsangan_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_nofrow_iso_tsangan`

[enhancement]

* Add `LAYOUT_tkl_nofrow_iso_wkl_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_nofrow_iso_wkl`

[enhancement]

* Add `LAYOUT_tkl_nofrow_ansi_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_nofrow_ansi`

[enhancement]

* Add `LAYOUT_tkl_nofrow_ansi_tsangan_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_nofrow_ansi_tsangan`

[enhancement]

* Add `LAYOUT_tkl_nofrow_ansi_wkl_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_nofrow_ansi_wkl`

[enhancement]

* Enable Community Layout support

[enhancement]
2023-09-09 12:15:57 -07:00
QMK Bot
5d61bc7eb1 Merge remote-tracking branch 'origin/master' into develop 2023-09-09 10:17:45 +00:00
Vino Rodrigues
ec09c03b64 [Keyboard] Add Binepad Pixie (#21524)
* Add Binepad Pixie

* Post waffle87 and drashna review recommendations applied

* Post-drashna code review suggestions applied

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

* post zvecr review

---------

Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-09-09 11:17:09 +01:00
QMK Bot
a4f28b9d1f Merge remote-tracking branch 'origin/master' into develop 2023-09-09 02:11:40 +00:00
James Young
4875bcecc2 customMK EVO70 R2 Layout Additions (#21916)
* Rename `LAYOUT` to `LAYOUT_all`

[refactor]

* Add layout/matrix diagram

[docs]

* Correct layout data

Reduce the gap between the encoder/macro section and the alphanumeric
section by 0.25u.

[enhancement]

* Add `LAYOUT_ansi_blocker`

[enhancement]

* Add `LAYOUT_iso_blocker`

[enhancement]

* Fix redundant `layout_aliases` keys

per dunk2k

[bugfix]
2023-09-08 19:11:07 -07:00
QMK Bot
ddb737e716 Merge remote-tracking branch 'origin/master' into develop 2023-09-07 20:53:59 +00:00
James Young
3e3320e8d9 Cipulot EC Theca Community Layout Support (#21913)
* Alias `LAYOUT_all` as `LAYOUT_tkl_ansi`

The data for `LAYOUT_all` and `LAYOUT_tkl_ansi` is identical, so alias
the former to the latter to reduce redundancy.

[refactor]

* Rename `LAYOUT_tkl_ansi_tsangan_wkl` to `LAYOUT_tkl_ansi_wkl`

[refactor]

* Enable Community Layout support

[enhancement]
2023-09-07 13:53:16 -07:00
Ryan
4a51f06c83 BIOI keyboards: use core UART driver (#21879) 2023-09-06 21:42:46 +01:00
QMK Bot
03b7d8217f Merge remote-tracking branch 'origin/master' into develop 2023-09-06 18:58:29 +00:00
James Young
c783325e16 GMMK2 96% ANSI: Correct layout data (#21937)
[enhancement]
2023-09-06 19:57:24 +01:00
Drashna Jaelre
9d4347b699 Enable RP2040 support for apa102 RGB LED driver (#21908) 2023-09-06 19:30:10 +02:00
cttt
32c90bf026 [Refactor] Make changes to some pins (#21380) 2023-09-07 02:05:31 +10:00
Drashna Jaelre
3aebc8acb0 Add RTC IRQ Priority to RP2040 board files (#21926) 2023-09-06 04:51:34 +01:00
QMK Bot
5633a2cdb4 Merge remote-tracking branch 'origin/master' into develop 2023-09-06 02:00:58 +00:00
3geek14
e3c6467ab9 [Docs] Improve contrast for warnings in dark mode (#21928) 2023-09-05 19:00:14 -07:00
QMK Bot
4413805a64 Merge remote-tracking branch 'origin/master' into develop 2023-09-05 23:47:03 +00:00
James Young
7fb60519ee GMMK2 65% ISO: Correct layout data (#21925)
Correct key sizes/positioning on the right side of the board.
2023-09-06 00:46:29 +01:00
QMK Bot
3472536796 Merge remote-tracking branch 'origin/master' into develop 2023-09-05 17:50:41 +00:00
dependabot[bot]
549708edfa Bump actions/checkout from 3 to 4 (#21907)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-05 18:50:04 +01:00
QMK Bot
67c366850e Merge remote-tracking branch 'origin/master' into develop 2023-09-05 07:49:09 +00:00
James Young
6aa3814f6e CannonKeys BastionTKL Layout Additions (#21901)
* [docs] add layout/matrix diagram

* [enhancement] add LAYOUT_tkl_ansi_split_bs_rshift

* [enhancement] add LAYOUT_tkl_ansi_tsangan_split_bs_rshift

* [enhancement] add LAYOUT_tkl_ansi_tsangan

* [enhancement] add LAYOUT_tkl_f13_ansi_tsangan

* [enhancement] add LAYOUT_tkl_f13_ansi_split_bs_rshift

* [enhancement] add LAYOUT_tkl_f13_ansi

* [enhancement] correct LAYOUT_tkl_iso key order

* [enhancement] add LAYOUT_tkl_iso_split_bs_rshift

* [enhancement] add LAYOUT_tkl_iso_tsangan_split_bs_rshift

* [enhancement] add LAYOUT_tkl_iso_tsangan

* [enhancement] add LAYOUT_tkl_f13_iso_split_bs_rshift

* [enhancement] add LAYOUT_tkl_f13_iso

* [enhancement] add LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift

* [enhancement] add LAYOUT_tkl_f13_iso_tsangan

* [enhancement] extend Community Layout support
2023-09-05 00:48:35 -07:00
QMK Bot
092fa3b61a Merge remote-tracking branch 'origin/master' into develop 2023-09-05 07:21:54 +00:00
James Young
809865e9ee CannonKeys Bastion65 Layout Additions (#21888)
* [docs] add layout/matrix diagram

* [refactor] rename LAYOUT to LAYOUT_all

* [enhancement] add LAYOUT_65_ansi_blocker_split_bs

* [enhancement] add LAYOUT_65_ansi_blocker

* [enhancement] add LAYOUT_65_ansi_blocker_tsangan_split_bs

* [enhancement] add LAYOUT_65_ansi_blocker_tsangan

* [enhancement] add LAYOUT_65_iso_blocker_split_bs

* [enhancement] add LAYOUT_65_iso_blocker

* [enhancement] add LAYOUT_65_iso_blocker_tsangan_split_bs

* [enhancement] add LAYOUT_65_iso_blocker_tsangan

* [enhancement] enable Community Layout support
2023-09-05 00:21:15 -07:00
James Young
2f243e2817 CannonKeys Bastion60 Layout Additions (#21887)
* [bugfix] correct LAYOUT_60_iso_tsangan key order

* [docs] add layout/matrix diagram

* [enhancement] add LAYOUT_60_tsangan_hhkb

* [enhancement] add LAYOUT_60_ansi_tsangan

* [enhancement] add LAYOUT_60_iso

* [enhancement] add LAYOUT_60_iso_split_bs_rshift

* [enhancement] add LAYOUT_60_iso_tsangan_split_bs_rshift

* [enhancement] add LAYOUT_60_hhkb

* [enhancement] extend Community Layout support
2023-09-04 23:55:24 -07:00
QMK Bot
8600f5b48a Merge remote-tracking branch 'origin/master' into develop 2023-09-05 06:34:58 +00:00
James Young
2f517041c7 CannonKeys Bastion75 Layout Additions (#21899)
* [docs] add layout/matrix diagram

* [refactor] rename LAYOUT to LAYOUT_all

* [enhancement] add LAYOUT_ansi_blocker_split_bs

* [enhancement] add LAYOUT_ansi_blocker

* [enhancement] add LAYOUT_ansi_blocker_tsangan_split_bs

* [enhancement] add LAYOUT_ansi_blocker_tsangan

* [enhancement] add LAYOUT_iso_blocker_split_bs

* [enhancement] add LAYOUT_iso_blocker

* [enhancement] add LAYOUT_iso_blocker_tsangan_split_bs

* [enhancement] add LAYOUT_iso_blocker_tsangan
2023-09-04 23:34:23 -07:00
Joel Challis
5fab310e65 Implement data driven wear leveling (#21906)
* DD encoder map, wear leveling

* remove encoder map from DD

let's avoid the support headache

* wear leveling: specify the allowed drivers by name

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

* Add additional params

* Relocate under eeprom

* disable parsing

---------

Co-authored-by: Dimitris Mantzouranis <d3xter93@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-09-05 01:53:05 +01:00
QMK Bot
a03de8440b Merge remote-tracking branch 'origin/master' into develop 2023-09-04 08:10:28 +00:00
Joel Challis
b2ded61796 Auto-label data-driven efforts (#21900) 2023-09-04 09:09:53 +01:00
QMK Bot
ae14710a10 Merge remote-tracking branch 'origin/master' into develop 2023-09-04 06:57:24 +00:00
James Young
fd095bbfae Chosfox CF81: correct layout data (#21902) 2023-09-04 07:56:43 +01:00
QMK Bot
ecec4e4a7a Merge remote-tracking branch 'origin/master' into develop 2023-09-04 06:18:28 +00:00
James Young
9eaa8a24ed ANAVI Macro Pad 12: rename LAYOUT to LAYOUT_ortho_4x3 (#21886)
[refactor]
2023-09-03 23:17:53 -07:00
QMK Bot
caf6245c32 Merge remote-tracking branch 'origin/master' into develop 2023-09-04 05:40:08 +00:00
James Young
dd17b6be29 AH Haven80 Community Layout support (#21885)
* [enhancement] correct layout data

* [refactor] rename LAYOUT to LAYOUT_tkl_f13_ansi_tsangan

* [enhancement] enable Community Layout support

* Haven80 Solder: add LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift

[enhancement]

* Haven80 Solder: add LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift

[enhancement]

* Haven80 Solder: add LAYOUT_tkl_f13_iso_tsangan

[enhancement]

* Haven80 Solder: extend Community Layout support

[enhancement]
2023-09-03 22:39:35 -07:00
Ryan
aec7f29df7 Add mousekey.h include to quantum.h (#21897) 2023-09-04 03:14:14 +01:00
Joel Challis
a40cccced2 Resolve some "Layout should not contain name of keyboard" lint warnings (#21898) 2023-09-04 03:13:35 +01:00
Ryan
41bd4e35a0 Clean up RGB LED type (#21859) 2023-09-04 01:19:59 +01:00
era
1e3095f9cc [Keyboard] Update era/divine (#21767) 2023-09-04 00:36:33 +01:00
Ryan
1b42d2ccfd is31fl3218: driver naming cleanups (#21892) 2023-09-04 00:18:34 +01:00
QMK Bot
b87877660e Merge remote-tracking branch 'origin/master' into develop 2023-09-03 15:57:50 +00:00
Joel Challis
e26442fc2a redragon/k667: Remove 2 layer VIA restriction (#21889) 2023-09-03 16:57:10 +01:00
Daniel Schaefer
dd887eae36 [Core] Allow customizing PWM frequency (#21717)
* [Core] Allow customizing PWM frequency

Some frequencies can cause audible noise. Changing the frequency
eliminates that.

Signed-off-by: Daniel Schaefer <dhs@frame.work>

* docs/feature-backlight: Mention PWM frequency

Signed-off-by: Daniel Schaefer <dhs@frame.work>

---------

Signed-off-by: Daniel Schaefer <dhs@frame.work>
2023-09-03 14:56:02 +02:00
QMK Bot
911c715f49 Merge remote-tracking branch 'origin/master' into develop 2023-09-03 04:34:41 +00:00
NCKiser
8ad43a965f Added kiserdesigns keyboard folder and Madeline keyboard (#21857)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-09-02 21:34:09 -07:00
QMK Bot
23bd6f16f9 Merge remote-tracking branch 'origin/master' into develop 2023-09-03 04:33:12 +00:00
Wolf Van Herreweghe
47e72a95ef Add M6-C Keyboard Firmware (#21852)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Wolf <contact@vwolf.be>
2023-09-02 21:32:40 -07:00
QMK Bot
5c16bb4fc4 Merge remote-tracking branch 'origin/master' into develop 2023-09-03 04:13:17 +00:00
temp4gh
04ce3497ab [keyboard] add redragon/k667 (#21417)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: syc <squall_sha@163.com>
2023-09-02 21:12:43 -07:00
QMK Bot
e149340351 Merge remote-tracking branch 'origin/master' into develop 2023-09-03 03:44:34 +00:00
ziptyze
b03b49fca3 Add 1upkeyboards Super16v3 (#21665)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-09-02 20:43:58 -07:00
Ryan
a74647c1fa Remove old IS_LED_ON/OFF() macros (#21878) 2023-09-03 03:24:52 +01:00
QMK Bot
c6b979b162 Merge remote-tracking branch 'origin/master' into develop 2023-09-03 01:25:36 +00:00
Frank Ebel
633d92a68b chore: ignore virtual environment directory (#20905) 2023-09-03 02:24:57 +01:00
QMK Bot
8d8775aff2 Merge remote-tracking branch 'origin/master' into develop 2023-09-01 15:46:38 +00:00
Jay Greco
81ea4f9110 nullbitsco/snap: fix broken keymaps (#21877) 2023-09-01 16:46:05 +01:00
QMK Bot
413c3d349c Merge remote-tracking branch 'origin/master' into develop 2023-09-01 08:37:31 +00:00
James Young
4b1aa1640c AH Haven65 Community Layout support (#21880)
* [refactor] rename LAYOUT to LAYOUT_65_ansi_blocker

* [enhancement] enable Community Layout support
2023-09-01 01:36:53 -07:00
QMK Bot
ba8de0ef74 Merge remote-tracking branch 'origin/master' into develop 2023-09-01 06:53:58 +00:00
James Young
ab9e74ad5e Abko AK84BT Layout Touch-Up (#21876)
* [refactor] rename LAYOUT_75_ansi to LAYOUT

* [enhancement] touch-up layout
2023-08-31 23:53:20 -07:00
James Young
faa7c1a1d8 1UpKeyboards Pi60 Layout Additions (#21874)
* [refactor] rename LAYOUT_60_ansi to LAYOUT_all

* [enhancement] add LAYOUT_60_ansi

* [enhancement] add LAYOUT_60_ansi_split_bs_rshift

* [enhancement] add LAYOUT_60_ansi_tsangan

* [enhancement] add LAYOUT_60_tsangan_hhkb

* [enhancement] add LAYOUT_60_iso

* [enhancement] add LAYOUT_60_iso_split_bs_rshift

* [enhancement] add LAYOUT_60_iso_tsangan

* [enhancement] add LAYOUT_60_iso_tsangan_split_bs_rshift

* [enhancement] enable Community Layout support

* [enhancement] add LAYOUT_60_hhkb

* [enhancement] add LAYOUT_60_ansi_arrow

* [enhancement] add LAYOUT_60_iso_arrow

* [docs] add layout/matrix diagram
2023-08-31 22:34:28 -07:00
QMK Bot
b0f5eb8f00 Merge remote-tracking branch 'origin/master' into develop 2023-08-31 23:27:22 +00:00
Daniel Schaefer
367b8e09d9 is31fl3741: Allow changing config register (#21861)
When not all SW pins are used, it's useful to disable those that aren't.
Can reduce audible noise.

```
Layout:
D7:D4 D3  D2:D1 D0
SWD   LGC OSDE  SSD

SWS: SWx Setting. Change how many SW pins are active
LGC: H/L Logic
SSD: Software Shutdown Control
```

Signed-off-by: Daniel Schaefer <dhs@frame.work>
2023-09-01 00:20:24 +01:00
QMK Bot
2447765181 Merge remote-tracking branch 'origin/master' into develop 2023-08-30 04:42:18 +00:00
QMK Bot
5aaf5a8c25 Merge remote-tracking branch 'origin/master' into develop 2023-08-30 01:09:32 +00:00
QMK Bot
b078d0bfc5 Merge remote-tracking branch 'origin/master' into develop 2023-08-30 00:47:53 +00:00
QMK Bot
7e8a64ca53 Merge remote-tracking branch 'origin/master' into develop 2023-08-30 00:34:44 +00:00
QMK Bot
d78c0007ba Merge remote-tracking branch 'origin/master' into develop 2023-08-30 00:24:50 +00:00
QMK Bot
e798c02d82 Merge remote-tracking branch 'origin/master' into develop 2023-08-30 00:08:10 +00:00
QMK Bot
14295563e1 Merge remote-tracking branch 'origin/master' into develop 2023-08-30 00:07:19 +00:00
QMK Bot
5dd1a68cb6 Merge remote-tracking branch 'origin/master' into develop 2023-08-29 23:44:31 +00:00
QMK Bot
66fcc7f5f5 Merge remote-tracking branch 'origin/master' into develop 2023-08-29 23:43:42 +00:00
QMK Bot
42e369dc9e Merge remote-tracking branch 'origin/master' into develop 2023-08-29 13:28:44 +00:00
Nick Brassel
9055dbbe65 Branch point for 20230827 breaking change. 2023-08-29 21:29:26 +10:00
14083 changed files with 221238 additions and 649655 deletions

View File

@@ -4,39 +4,39 @@
root = true
[*]
end_of_line = lf
indent_style = space
indent_size = 4
# We recommend you to keep these unchanged
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[{*.yaml,*.yml}] # To match GitHub Actions formatting
indent_size = 2
[*.md]
trim_trailing_whitespace = false
indent_size = 4
[{qmk,*.py}]
charset = utf-8
max_line_length = 200
# Make these match what we have in .gitattributes
[*.mk]
end_of_line = lf
[{Makefile,*.mk}]
indent_style = tab
[Makefile]
end_of_line = lf
indent_style = tab
[*.sh]
end_of_line = lf
# The gitattributes file will handle the line endings conversion properly according to the operating system settings for other files
# We don't have gitattributes properly for these
# So if the user have for example core.autocrlf set to true
# the line endings would be wrong.
# Don't override anything in `lib/`...
[lib/**]
indent_style = unset
indent_size = unset
tab_width = unset
end_of_line = unset
charset = unset
spelling_language = unset
trim_trailing_whitespace = unset
insert_final_newline = unset
# ...except QMK's `lib/python`.
[{*.py,lib/python/**.py}]
end_of_line = lf
indent_style = space
indent_size = 4
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
max_line_length = 200

4
.github/labeler.yml vendored
View File

@@ -40,3 +40,7 @@ translation:
- docs/ru-ru/**/*
CI:
- .github/**/*
dd:
- data/constants/**/*
- data/mappings/**/*
- data/schemas/**/*

View File

@@ -25,7 +25,7 @@ jobs:
if: github.repository == 'qmk/qmk_firmware'
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 1
persist-credentials: false

View File

@@ -27,7 +27,7 @@ jobs:
if: github.repository == 'qmk/qmk_firmware'
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0

View File

@@ -33,7 +33,7 @@ jobs:
- name: Disable safe.directory check
run : git config --global --add safe.directory '*'
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
submodules: recursive
ref: ${{ github.event.inputs.branch || github.ref }}
@@ -53,7 +53,7 @@ jobs:
[ ! -f .failed ] || exit 1
- name: 'Upload artifacts'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: always()
with:
name: artifacts-${{ github.event.inputs.branch || github.ref_name }}-${{ matrix.keymap }}

View File

@@ -24,7 +24,7 @@ jobs:
- name: Disable safe.directory check
run : git config --global --add safe.directory '*'
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
submodules: recursive

View File

@@ -15,7 +15,7 @@ jobs:
if: github.repository == 'qmk/qmk_firmware'
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
token: ${{ secrets.QMK_BOT_TOKEN }}
fetch-depth: 0

View File

@@ -23,7 +23,7 @@ jobs:
if: github.repository == 'qmk/qmk_firmware'
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 1
@@ -37,7 +37,7 @@ jobs:
qmk --verbose generate-docs
- name: Deploy
uses: JamesIves/github-pages-deploy-action@v4.4.3
uses: JamesIves/github-pages-deploy-action@v4.5.0
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BASE_BRANCH: master

View File

@@ -21,7 +21,7 @@ jobs:
- riot
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
token: ${{ secrets.QMK_BOT_TOKEN }}
fetch-depth: 0

View File

@@ -25,7 +25,7 @@ jobs:
- name: Disable safe.directory check
run : git config --global --add safe.directory '*'
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0
@@ -35,7 +35,9 @@ jobs:
- name: Get changed files
id: file_changes
uses: tj-actions/changed-files@v38
uses: tj-actions/changed-files@v42
with:
use_rest_api: true
- name: Run qmk formatters
shell: 'bash {0}'

View File

@@ -19,7 +19,7 @@ jobs:
- name: Disable safe.directory check
run : git config --global --add safe.directory '*'
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0
@@ -47,7 +47,7 @@ jobs:
git config user.email 'hello@qmk.fm'
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
uses: peter-evans/create-pull-request@v6
if: ${{ github.repository == 'qmk/qmk_firmware'}}
with:
token: ${{ secrets.QMK_BOT_TOKEN }}

View File

@@ -12,7 +12,7 @@ jobs:
triage:
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@main
- uses: actions/labeler@v4
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
configuration-path: '.github/labeler.yml'

View File

@@ -18,7 +18,7 @@ jobs:
- name: Disable safe.directory check
run : git config --global --add safe.directory '*'
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0
@@ -27,7 +27,9 @@ jobs:
- name: Get changed files
id: file_changes
uses: tj-actions/changed-files@v38
uses: tj-actions/changed-files@v42
with:
use_rest_api: true
- name: Print info
run: |
@@ -62,10 +64,12 @@ jobs:
qmk format-text ${{ steps.file_changes.outputs.all_changed_files}} || true
for file in ${{ steps.file_changes.outputs.all_changed_files}}; do
if ! git diff --quiet $file; then
echo "File '${file}' Requires Formatting"
echo "::error file=${file}::Requires Formatting"
exit_code=$(($exit_code + 1))
if [[ -f $file ]]; then
if ! git diff --quiet $file; then
echo "File '${file}' Requires Formatting"
echo "::error file=${file}::Requires Formatting"
exit_code=$(($exit_code + 1))
fi
fi
done
@@ -74,31 +78,10 @@ jobs:
fi
exit $exit_code
- name: Verify at most one added keyboard
- name: Verify keyboard aliases
if: always()
shell: 'bash {0}'
run: |
git reset --hard
git clean -xfd
# Get the keyboard list and count for the target branch
git checkout -f ${{ github.base_ref }}
git pull --ff-only
QMK_KEYBOARDS_BASE=$(qmk list-keyboards)
QMK_KEYBOARDS_BASE_COUNT=$(qmk list-keyboards | wc -l)
# Get the keyboard list and count for the PR
git checkout -f ${{ github.head_ref }}
git merge --no-commit --squash ${{ github.base_ref }}
QMK_KEYBOARDS_PR=$(qmk list-keyboards)
QMK_KEYBOARDS_PR_COUNT=$(qmk list-keyboards | wc -l)
echo "::group::Keyboards changes in this PR"
diff -d -U 0 <(echo "$QMK_KEYBOARDS_BASE") <(echo "$QMK_KEYBOARDS_PR") | grep -vE '^(---|\+\+\+|@@)' | sed -e 's@^-@Removed: @g' -e 's@^+@ Added: @g'
echo "::endgroup::"
if [[ $QMK_KEYBOARDS_PR_COUNT -gt $(($QMK_KEYBOARDS_BASE_COUNT + 1)) ]]; then
echo "More than one keyboard added in this PR -- see the PR Checklist."
echo "::error::More than one keyboard added in this PR -- see the PR Checklist."
exit 1
fi
qmk ci-validate-aliases

View File

@@ -19,7 +19,7 @@ jobs:
- name: Disable safe.directory check
run : git config --global --add safe.directory '*'
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Run qmk generators
run: |

View File

@@ -19,7 +19,7 @@ jobs:
- name: Disable safe.directory check
run : git config --global --add safe.directory '*'
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Run qmk generators
run: |
@@ -34,7 +34,7 @@ jobs:
git config user.email 'hello@qmk.fm'
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
uses: peter-evans/create-pull-request@v6
if: ${{ github.repository == 'qmk/qmk_firmware'}}
with:
token: ${{ secrets.QMK_BOT_TOKEN }}

View File

@@ -3,6 +3,7 @@ name: 'Close stale issues and PRs'
permissions:
issues: write
pull-requests: write
actions: write
on:
schedule:
@@ -13,7 +14,7 @@ jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v8
- uses: actions/stale@main
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -26,7 +26,7 @@ jobs:
container: ghcr.io/qmk/qmk_cli
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install dependencies

9
.gitignore vendored
View File

@@ -18,6 +18,11 @@
*.lst
*.map
*.o
*.a
*.so
*.dylib
*.dll
*.la
*.stackdump
*.sym
@@ -95,6 +100,7 @@ secrets.tar
# Python things
__pycache__
.python-version
.venv
# Prerequisites for updating ChibiOS
/util/fmpp*
@@ -107,5 +113,6 @@ compile_commands.json
.clangd/
.cache/
# VIA(L) json files that don't belong in QMK repo
# VIA(L) files that don't belong in QMK repo
via*.json
/keyboards/**/keymaps/vial/*

View File

@@ -38,6 +38,11 @@ $(info QMK Firmware $(QMK_VERSION))
endif
endif
# Try to determine userspace from qmk config, if set.
ifeq ($(QMK_USERSPACE),)
QMK_USERSPACE = $(shell qmk config -ro user.overlay_dir | cut -d= -f2 | sed -e 's@^None$$@@g')
endif
# Determine which qmk cli to use
QMK_BIN := qmk
@@ -191,9 +196,20 @@ define PARSE_KEYBOARD
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/keymaps/*/.)))
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/keymaps/*/.)))
ifneq ($(QMK_USERSPACE),)
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_1)/keymaps/*/.)))
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_2)/keymaps/*/.)))
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_3)/keymaps/*/.)))
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/keymaps/*/.)))
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/keymaps/*/.)))
endif
KEYBOARD_LAYOUTS := $(shell $(QMK_BIN) list-layouts --keyboard $1)
LAYOUT_KEYMAPS :=
$$(foreach LAYOUT,$$(KEYBOARD_LAYOUTS),$$(eval LAYOUT_KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/layouts/*/$$(LAYOUT)/*/.)))))
ifneq ($(QMK_USERSPACE),)
$$(foreach LAYOUT,$$(KEYBOARD_LAYOUTS),$$(eval LAYOUT_KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/layouts/$$(LAYOUT)/*/.)))))
endif
KEYMAPS := $$(sort $$(KEYMAPS) $$(LAYOUT_KEYMAPS))
@@ -300,17 +316,18 @@ endef
define BUILD_TEST
TEST_PATH := $1
TEST_NAME := $$(notdir $$(TEST_PATH))
TEST_FULL_NAME := $$(subst /,_,$$(patsubst $$(ROOT_DIR)tests/%,%,$$(TEST_PATH)))
MAKE_TARGET := $2
COMMAND := $1
MAKE_CMD := $$(MAKE) -r -R -C $(ROOT_DIR) -f $(BUILDDEFS_PATH)/build_test.mk $$(MAKE_TARGET)
MAKE_VARS := TEST=$$(TEST_NAME) TEST_PATH=$$(TEST_PATH) FULL_TESTS="$$(FULL_TESTS)"
MAKE_VARS := TEST=$$(TEST_NAME) TEST_OUTPUT=$$(TEST_FULL_NAME) TEST_PATH=$$(TEST_PATH) FULL_TESTS="$$(FULL_TESTS)"
MAKE_MSG := $$(MSG_MAKE_TEST)
$$(eval $$(call BUILD))
ifneq ($$(MAKE_TARGET),clean)
TEST_EXECUTABLE := $$(TEST_OUTPUT_DIR)/$$(TEST_NAME).elf
TESTS += $$(TEST_NAME)
TEST_EXECUTABLE := $$(TEST_OUTPUT_DIR)/$$(TEST_FULL_NAME).elf
TESTS += $$(TEST_FULL_NAME)
TEST_MSG := $$(MSG_TEST)
$$(TEST_NAME)_COMMAND := \
$$(TEST_FULL_NAME)_COMMAND := \
printf "$$(TEST_MSG)\n"; \
$$(TEST_EXECUTABLE); \
if [ $$$$? -gt 0 ]; \
@@ -320,6 +337,12 @@ define BUILD_TEST
endif
endef
define LIST_TEST
include $(BUILDDEFS_PATH)/testlist.mk
FOUND_TESTS := $$(patsubst ./tests/%,%,$$(TEST_LIST))
$$(info $$(FOUND_TESTS))
endef
define PARSE_TEST
TESTS :=
TEST_NAME := $$(firstword $$(subst :, ,$$(RULE)))
@@ -328,7 +351,7 @@ define PARSE_TEST
ifeq ($$(TEST_NAME),all)
MATCHED_TESTS := $$(TEST_LIST)
else
MATCHED_TESTS := $$(foreach TEST, $$(TEST_LIST),$$(if $$(findstring x$$(TEST_NAME)x, x$$(notdir $$(TEST))x), $$(TEST),))
MATCHED_TESTS := $$(foreach TEST, $$(TEST_LIST),$$(if $$(findstring x$$(TEST_NAME)x, x$$(patsubst ./tests/%,%,$$(TEST)x)), $$(TEST),))
endif
$$(foreach TEST,$$(MATCHED_TESTS),$$(eval $$(call BUILD_TEST,$$(TEST),$$(TEST_TARGET))))
endef
@@ -413,6 +436,10 @@ git-submodules: git-submodule
list-keyboards:
$(QMK_BIN) list-keyboards --no-resolve-defaults | tr '\n' ' '
.PHONY: list-tests
list-tests:
$(eval $(call LIST_TEST))
.PHONY: generate-keyboards-file
generate-keyboards-file:
$(QMK_BIN) list-keyboards --no-resolve-defaults
@@ -423,8 +450,18 @@ clean:
rm -rf $(BUILD_DIR)
echo 'done.'
.PHONY: distclean
distclean: clean
.PHONY: distclean distclean_qmk
distclean: distclean_qmk
distclean_qmk: clean
echo -n 'Deleting *.bin, *.hex, and *.uf2 ... '
rm -f *.bin *.hex *.uf2
echo 'done.'
ifneq ($(QMK_USERSPACE),)
.PHONY: distclean_userspace
distclean: distclean_userspace
distclean_userspace: clean
echo -n 'Deleting userspace *.bin, *.hex, and *.uf2 ... '
rm -f $(QMK_USERSPACE)/*.bin $(QMK_USERSPACE)/*.hex $(QMK_USERSPACE)/*.uf2
echo 'done.'
endif

View File

@@ -13,10 +13,10 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
$(TEST)_INC := \
$(TEST_OUTPUT)_INC := \
tests/test_common/common_config.h
$(TEST)_SRC := \
$(TEST_OUTPUT)_SRC := \
$(QUANTUM_SRC) \
$(SRC) \
$(QUANTUM_PATH)/keymap_introspection.c \
@@ -30,8 +30,8 @@ $(TEST)_SRC := \
tests/test_common/test_logger.cpp \
$(patsubst $(ROOTDIR)/%,%,$(wildcard $(TEST_PATH)/*.cpp))
$(TEST)_DEFS := $(OPT_DEFS) "-DKEYMAP_C=\"keymap.c\""
$(TEST_OUTPUT)_DEFS := $(OPT_DEFS) "-DKEYMAP_C=\"keymap.c\""
$(TEST)_CONFIG := $(TEST_PATH)/config.h
$(TEST_OUTPUT)_CONFIG := $(TEST_PATH)/config.h
VPATH += $(TOP_DIR)/tests/test_common

View File

@@ -1,17 +1,36 @@
# Look for a json keymap file
ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.json)","")
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_5)/keymap.json
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5)
KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_5)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.json)","")
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_4)/keymap.json
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4)
KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_4)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.json)","")
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_3)/keymap.json
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3)
KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_3)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.json)","")
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_2)/keymap.json
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2)
KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_2)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.json)","")
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_1)/keymap.json
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1)
KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_1)
endif
ifneq ($(QMK_USERSPACE),)
ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/keymap.json)","")
KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/keymap.json
KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)
else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/keymap.json)","")
KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/keymap.json
KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)
else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/keymap.json)","")
KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/keymap.json
KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)
else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/keymap.json)","")
KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/keymap.json
KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)
else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/keymap.json)","")
KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/keymap.json
KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)
endif
endif

View File

@@ -129,37 +129,68 @@ include $(BUILDDEFS_PATH)/build_json.mk
# Pull in keymap level rules.mk
ifeq ("$(wildcard $(KEYMAP_PATH))", "")
# Look through the possible keymap folders until we find a matching keymap.c
ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_1)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_1)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_2)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_2)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_3)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_3)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_4)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_4)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_5)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_5)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5)
else ifneq ($(LAYOUTS),)
# If we haven't found a keymap yet fall back to community layouts
include $(BUILDDEFS_PATH)/build_layout.mk
else
$(call CATASTROPHIC_ERROR,Invalid keymap,Could not find keymap)
# this state should never be reached
ifneq ($(QMK_USERSPACE),)
ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/keymap.c)","")
-include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/rules.mk
KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/keymap.c
KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)
else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/keymap.c)","")
-include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/rules.mk
KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/keymap.c
KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)
else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/keymap.c)","")
-include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/rules.mk
KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/keymap.c
KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)
else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/keymap.c)","")
-include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/rules.mk
KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/keymap.c
KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)
else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/keymap.c)","")
-include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/rules.mk
KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/keymap.c
KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)
endif
endif
ifeq ($(KEYMAP_PATH),)
ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_1)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_1)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_2)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_2)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_3)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_3)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_4)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_4)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_5)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_5)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5)
else ifneq ($(LAYOUTS),)
# If we haven't found a keymap yet fall back to community layouts
include $(BUILDDEFS_PATH)/build_layout.mk
else ifeq ("$(wildcard $(KEYMAP_JSON_PATH))", "") # Not finding keymap.c is fine if we found a keymap.json
$(call CATASTROPHIC_ERROR,Invalid keymap,Could not find keymap)
# this state should never be reached
endif
endif
endif
# Have we found a keymap.json?
ifneq ("$(wildcard $(KEYMAP_JSON))", "")
ifneq ("$(wildcard $(KEYMAP_C))", "")
$(call WARNING_MESSAGE,Keymap is specified as both keymap.json and keymap.c -- keymap.json file wins.)
endif
KEYMAP_PATH := $(KEYMAP_JSON_PATH)
KEYMAP_C := $(INTERMEDIATE_OUTPUT)/src/keymap.c
KEYMAP_H := $(INTERMEDIATE_OUTPUT)/src/config.h
@@ -359,6 +390,16 @@ ifeq ("$(USER_NAME)","")
endif
USER_PATH := users/$(USER_NAME)
# If we have userspace, then add it to the lookup VPATH
ifneq ($(wildcard $(QMK_USERSPACE)),)
VPATH += $(QMK_USERSPACE)
endif
# If the equivalent users directory exists in userspace, use that in preference to anything currently in the main repo
ifneq ($(wildcard $(QMK_USERSPACE)/$(USER_PATH)),)
USER_PATH := $(QMK_USERSPACE)/$(USER_PATH)
endif
# Pull in user level rules.mk
-include $(USER_PATH)/rules.mk
ifneq ("$(wildcard $(USER_PATH)/config.h)","")
@@ -399,6 +440,10 @@ ifneq ("$(KEYMAP_H)","")
CONFIG_H += $(KEYMAP_H)
endif
ifeq ($(KEYMAP_C),)
$(call CATASTROPHIC_ERROR,Invalid keymap,Could not find keymap)
endif
OPT_DEFS += -DKEYMAP_C=\"$(KEYMAP_C)\"
# If a keymap or userspace places their keymap array in another file instead, allow for it to be included
@@ -450,6 +495,7 @@ $(eval $(call add_qmk_prefix_defs,MCU_PORT_NAME,MCU_PORT_NAME))
$(eval $(call add_qmk_prefix_defs,MCU_FAMILY,MCU_FAMILY))
$(eval $(call add_qmk_prefix_defs,MCU_SERIES,MCU_SERIES))
$(eval $(call add_qmk_prefix_defs,BOARD,BOARD))
$(eval $(call add_qmk_prefix_defs,OPT,OPT))
# Control whether intermediate file listings are generated
# e.g.:
@@ -495,10 +541,10 @@ check-size: top-symbols
top-symbols: build
echo "###########################################"
echo "# Highest flash usage:"
$(NM) -Crtd --size-sort $(BUILD_DIR)/$(TARGET).elf | grep -i ' [t] ' | head -n$(NUM_TOP_SYMBOLS) | sed -e 's#^0000000# #g' -e 's#^000000# #g' -e 's#^00000# #g' -e 's#^0000# #g' -e 's#^000# #g' -e 's#^00# #g' -e 's#^0# #g'
$(NM) -Crtd --size-sort $(BUILD_DIR)/$(TARGET).elf | grep ' [RrTt] ' | head -n$(NUM_TOP_SYMBOLS) | sed -e 's#^0000000# #g' -e 's#^000000# #g' -e 's#^00000# #g' -e 's#^0000# #g' -e 's#^000# #g' -e 's#^00# #g' -e 's#^0# #g'
echo "###########################################"
echo "# Highest RAM usage:"
$(NM) -Crtd --size-sort $(BUILD_DIR)/$(TARGET).elf | grep -i ' [dbv] ' | head -n$(NUM_TOP_SYMBOLS) | sed -e 's#^0000000# #g' -e 's#^000000# #g' -e 's#^00000# #g' -e 's#^0000# #g' -e 's#^000# #g' -e 's#^00# #g' -e 's#^0# #g'
$(NM) -Crtd --size-sort $(BUILD_DIR)/$(TARGET).elf | grep ' [BbCDdGgSs] ' | head -n$(NUM_TOP_SYMBOLS) | sed -e 's#^0000000# #g' -e 's#^000000# #g' -e 's#^00000# #g' -e 's#^0000# #g' -e 's#^000# #g' -e 's#^00# #g' -e 's#^0# #g'
echo "###########################################"
endif

View File

@@ -1,6 +1,10 @@
LAYOUTS_PATH := layouts
LAYOUTS_REPOS := $(patsubst %/,%,$(sort $(dir $(wildcard $(LAYOUTS_PATH)/*/))))
ifneq ($(QMK_USERSPACE),)
LAYOUTS_REPOS += $(patsubst %/,%,$(QMK_USERSPACE)/$(LAYOUTS_PATH))
endif
define SEARCH_LAYOUTS_REPO
LAYOUT_KEYMAP_PATH := $$(LAYOUTS_REPO)/$$(LAYOUT)/$$(KEYMAP)
LAYOUT_KEYMAP_JSON := $$(LAYOUT_KEYMAP_PATH)/keymap.json

View File

@@ -9,13 +9,13 @@ OPT = g
include paths.mk
include $(BUILDDEFS_PATH)/message.mk
TARGET=test/$(TEST)
TARGET=test/$(TEST_OUTPUT)
GTEST_OUTPUT = $(BUILD_DIR)/gtest
TEST_OBJ = $(BUILD_DIR)/test_obj
OUTPUTS := $(TEST_OBJ)/$(TEST) $(GTEST_OUTPUT)
OUTPUTS := $(TEST_OBJ)/$(TEST_OUTPUT) $(GTEST_OUTPUT)
GTEST_INC := \
$(LIB_PATH)/googletest/googletest/include \
@@ -71,18 +71,18 @@ ifneq ($(filter $(FULL_TESTS),$(TEST)),)
include $(BUILDDEFS_PATH)/build_full_test.mk
endif
$(TEST)_SRC += \
$(TEST_OUTPUT)_SRC += \
tests/test_common/main.cpp \
$(QUANTUM_PATH)/logging/print.c
ifneq ($(strip $(INTROSPECTION_KEYMAP_C)),)
$(TEST)_DEFS += -DINTROSPECTION_KEYMAP_C=\"$(strip $(INTROSPECTION_KEYMAP_C))\"
$(TEST_OUTPUT)_DEFS += -DINTROSPECTION_KEYMAP_C=\"$(strip $(INTROSPECTION_KEYMAP_C))\"
endif
$(TEST_OBJ)/$(TEST)_SRC := $($(TEST)_SRC)
$(TEST_OBJ)/$(TEST)_INC := $($(TEST)_INC) $(VPATH) $(GTEST_INC)
$(TEST_OBJ)/$(TEST)_DEFS := $($(TEST)_DEFS)
$(TEST_OBJ)/$(TEST)_CONFIG := $($(TEST)_CONFIG)
$(TEST_OBJ)/$(TEST_OUTPUT)_SRC := $($(TEST_OUTPUT)_SRC)
$(TEST_OBJ)/$(TEST_OUTPUT)_INC := $($(TEST_OUTPUT)_INC) $(VPATH) $(GTEST_INC)
$(TEST_OBJ)/$(TEST_OUTPUT)_DEFS := $($(TEST_OUTPUT)_DEFS)
$(TEST_OBJ)/$(TEST_OUTPUT)_CONFIG := $($(TEST_OUTPUT)_CONFIG)
include $(PLATFORM_PATH)/$(PLATFORM_KEY)/platform.mk
include $(BUILDDEFS_PATH)/common_rules.mk

View File

@@ -75,10 +75,7 @@ ifeq ($(strip $(AUDIO_ENABLE)), yes)
endif
ifeq ($(strip $(SEQUENCER_ENABLE)), yes)
OPT_DEFS += -DSEQUENCER_ENABLE
MUSIC_ENABLE = yes
SRC += $(QUANTUM_DIR)/sequencer/sequencer.c
SRC += $(QUANTUM_DIR)/process_keycode/process_sequencer.c
endif
ifeq ($(strip $(MIDI_ENABLE)), yes)
@@ -94,11 +91,6 @@ ifeq ($(strip $(MIDI_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_midi.c
endif
MUSIC_ENABLE ?= no
ifeq ($(MUSIC_ENABLE), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_music.c
endif
VALID_STENO_PROTOCOL_TYPES := geminipr txbolt all
STENO_PROTOCOL ?= all
ifeq ($(strip $(STENO_ENABLE)), yes)
@@ -124,17 +116,11 @@ ifeq ($(strip $(STENO_ENABLE)), yes)
endif
endif
ifeq ($(strip $(VIRTSER_ENABLE)), yes)
OPT_DEFS += -DVIRTSER_ENABLE
endif
ifeq ($(strip $(MOUSEKEY_ENABLE)), yes)
OPT_DEFS += -DMOUSEKEY_ENABLE
MOUSE_ENABLE := yes
SRC += $(QUANTUM_DIR)/mousekey.c
endif
VALID_POINTING_DEVICE_DRIVER_TYPES := adns5050 adns9800 analog_joystick cirque_pinnacle_i2c cirque_pinnacle_spi paw3204 pmw3320 pmw3360 pmw3389 pimoroni_trackball custom
VALID_POINTING_DEVICE_DRIVER_TYPES := adns5050 adns9800 analog_joystick azoteq_iqs5xx cirque_pinnacle_i2c cirque_pinnacle_spi paw3204 pmw3320 pmw3360 pmw3389 pimoroni_trackball custom
ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes)
ifeq ($(filter $(POINTING_DEVICE_DRIVER),$(VALID_POINTING_DEVICE_DRIVER_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid POINTING_DEVICE_DRIVER,POINTING_DEVICE_DRIVER="$(POINTING_DEVICE_DRIVER)" is not a valid pointing device type)
@@ -151,30 +137,26 @@ ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes)
endif
OPT_DEFS += -DPOINTING_DEVICE_DRIVER_$(strip $(POINTING_DEVICE_DRIVER))
ifeq ($(strip $(POINTING_DEVICE_DRIVER)), adns9800)
OPT_DEFS += -DSTM32_SPI -DHAL_USE_SPI=TRUE
QUANTUM_LIB_SRC += spi_master.c
SPI_DRIVER_REQUIRED = yes
else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), analog_joystick)
OPT_DEFS += -DSTM32_ADC -DHAL_USE_ADC=TRUE
LIB_SRC += analog.c
ANALOG_DRIVER_REQUIRED = yes
else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), azoteq_iqs5xx)
I2C_DRIVER_REQUIRED = yes
else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), cirque_pinnacle_i2c)
OPT_DEFS += -DSTM32_I2C -DHAL_USE_I2C=TRUE
I2C_DRIVER_REQUIRED = yes
SRC += drivers/sensors/cirque_pinnacle.c
SRC += drivers/sensors/cirque_pinnacle_gestures.c
SRC += $(QUANTUM_DIR)/pointing_device/pointing_device_gestures.c
QUANTUM_LIB_SRC += i2c_master.c
else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), cirque_pinnacle_spi)
OPT_DEFS += -DSTM32_SPI -DHAL_USE_SPI=TRUE
SPI_DRIVER_REQUIRED = yes
SRC += drivers/sensors/cirque_pinnacle.c
SRC += drivers/sensors/cirque_pinnacle_gestures.c
SRC += $(QUANTUM_DIR)/pointing_device/pointing_device_gestures.c
QUANTUM_LIB_SRC += spi_master.c
else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), pimoroni_trackball)
OPT_DEFS += -DSTM32_SPI -DHAL_USE_I2C=TRUE
QUANTUM_LIB_SRC += i2c_master.c
I2C_DRIVER_REQUIRED = yes
else ifneq ($(filter $(strip $(POINTING_DEVICE_DRIVER)),pmw3360 pmw3389),)
OPT_DEFS += -DSTM32_SPI -DHAL_USE_SPI=TRUE
SPI_DRIVER_REQUIRED = yes
SRC += drivers/sensors/pmw33xx_common.c
QUANTUM_LIB_SRC += spi_master.c
endif
endif
endif
@@ -204,12 +186,12 @@ else
else ifeq ($(strip $(EEPROM_DRIVER)), i2c)
# External I2C EEPROM implementation
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_I2C
QUANTUM_LIB_SRC += i2c_master.c
I2C_DRIVER_REQUIRED = yes
SRC += eeprom_driver.c eeprom_i2c.c
else ifeq ($(strip $(EEPROM_DRIVER)), spi)
# External SPI EEPROM implementation
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_SPI
QUANTUM_LIB_SRC += spi_master.c
SPI_DRIVER_REQUIRED = yes
SRC += eeprom_driver.c eeprom_spi.c
else ifeq ($(strip $(EEPROM_DRIVER)), legacy_stm32_flash)
# STM32 Emulated EEPROM, backed by MCU flash (soon to be deprecated)
@@ -308,10 +290,10 @@ ifneq ($(strip $(FLASH_DRIVER)), none)
else
OPT_DEFS += -DFLASH_ENABLE
ifeq ($(strip $(FLASH_DRIVER)),spi)
SPI_DRIVER_REQUIRED = yes
OPT_DEFS += -DFLASH_DRIVER -DFLASH_SPI
COMMON_VPATH += $(DRIVER_PATH)/flash
SRC += flash_spi.c
QUANTUM_LIB_SRC += spi_master.c
endif
endif
endif
@@ -328,8 +310,10 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
COMMON_VPATH += $(QUANTUM_DIR)/rgblight
POST_CONFIG_H += $(QUANTUM_DIR)/rgblight/rgblight_post_config.h
OPT_DEFS += -DRGBLIGHT_ENABLE
OPT_DEFS += -DRGBLIGHT_$(strip $(shell echo $(RGBLIGHT_DRIVER) | tr '[:lower:]' '[:upper:]'))
SRC += $(QUANTUM_DIR)/color.c
SRC += $(QUANTUM_DIR)/rgblight/rgblight.c
SRC += $(QUANTUM_DIR)/rgblight/rgblight_drivers.c
CIE1931_CURVE := yes
RGB_KEYCODES_ENABLE := yes
endif
@@ -342,24 +326,29 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
APA102_DRIVER_REQUIRED := yes
endif
ifeq ($(strip $(RGBLIGHT_DRIVER)), custom)
OPT_DEFS += -DRGBLIGHT_CUSTOM_DRIVER
ifeq ($(strip $(VELOCIKEY_ENABLE)), yes)
OPT_DEFS += -DVELOCIKEY_ENABLE
endif
endif
# Deprecated driver names - do not use
ifeq ($(strip $(LED_MATRIX_DRIVER)), aw20216)
LED_MATRIX_DRIVER := aw20216s
endif
ifeq ($(strip $(LED_MATRIX_DRIVER)), ckled2001)
LED_MATRIX_DRIVER := snled27351
endif
LED_MATRIX_ENABLE ?= no
VALID_LED_MATRIX_TYPES := is31fl3731 is31fl3742a is31fl3743a is31fl3745 is31fl3746a ckled2001 custom
# TODO: is31fl3733 is31fl3737 is31fl3741
VALID_LED_MATRIX_TYPES := is31fl3218 is31fl3729 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a snled27351 custom
ifeq ($(strip $(LED_MATRIX_ENABLE)), yes)
ifeq ($(filter $(LED_MATRIX_DRIVER),$(VALID_LED_MATRIX_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid LED_MATRIX_DRIVER,LED_MATRIX_DRIVER="$(LED_MATRIX_DRIVER)" is not a valid matrix type)
endif
OPT_DEFS += -DLED_MATRIX_ENABLE
ifneq (,$(filter $(MCU), atmega16u2 atmega32u2 at90usb162))
# ATmegaxxU2 does not have hardware MUL instruction - lib8tion must be told to use software multiplication routines
OPT_DEFS += -DLIB8_ATTINY
endif
OPT_DEFS += -DLED_MATRIX_$(strip $(shell echo $(LED_MATRIX_DRIVER) | tr '[:lower:]' '[:upper:]'))
COMMON_VPATH += $(QUANTUM_DIR)/led_matrix
COMMON_VPATH += $(QUANTUM_DIR)/led_matrix/animations
COMMON_VPATH += $(QUANTUM_DIR)/led_matrix/animations/runners
@@ -367,65 +356,101 @@ endif
SRC += $(QUANTUM_DIR)/process_keycode/process_backlight.c
SRC += $(QUANTUM_DIR)/led_matrix/led_matrix.c
SRC += $(QUANTUM_DIR)/led_matrix/led_matrix_drivers.c
SRC += $(LIB_PATH)/lib8tion/lib8tion.c
LIB8TION_ENABLE := yes
CIE1931_CURVE := yes
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3218)
I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3218-mono.c
endif
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3729)
I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3729-mono.c
endif
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3731)
OPT_DEFS += -DIS31FL3731 -DSTM32_I2C -DHAL_USE_I2C=TRUE
I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3731-simple.c
QUANTUM_LIB_SRC += i2c_master.c
SRC += is31fl3731-mono.c
endif
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3742a)
OPT_DEFS += -DIS31FLCOMMON -DIS31FL3742A -DSTM32_I2C -DHAL_USE_I2C=TRUE
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3733)
I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31flcommon.c
QUANTUM_LIB_SRC += i2c_master.c
SRC += is31fl3733-mono.c
endif
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3743a)
OPT_DEFS += -DIS31FLCOMMON -DIS31FL3743A -DSTM32_I2C -DHAL_USE_I2C=TRUE
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3736)
I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31flcommon.c
QUANTUM_LIB_SRC += i2c_master.c
SRC += is31fl3736-mono.c
endif
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3745)
OPT_DEFS += -DIS31FLCOMMON -DIS31FL3745 -DSTM32_I2C -DHAL_USE_I2C=TRUE
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3737)
I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31flcommon.c
QUANTUM_LIB_SRC += i2c_master.c
SRC += is31fl3737-mono.c
endif
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3746a)
OPT_DEFS += -DIS31FLCOMMON -DIS31FL3746A -DSTM32_I2C -DHAL_USE_I2C=TRUE
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3741)
I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31flcommon.c
QUANTUM_LIB_SRC += i2c_master.c
SRC += is31fl3741-mono.c
endif
ifeq ($(strip $(LED_MATRIX_DRIVER)), ckled2001)
OPT_DEFS += -DCKLED2001 -DSTM32_I2C -DHAL_USE_I2C=TRUE
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3742a)
I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3742a-mono.c
endif
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3743a)
I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3743a-mono.c
endif
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3745)
I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3745-mono.c
endif
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3746a)
I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3746a-mono.c
endif
ifeq ($(strip $(LED_MATRIX_DRIVER)), snled27351)
I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led
SRC += ckled2001-simple.c
QUANTUM_LIB_SRC += i2c_master.c
SRC += snled27351-mono.c
endif
endif
# Deprecated driver names - do not use
ifeq ($(strip $(RGB_MATRIX_DRIVER)), aw20216)
RGB_MATRIX_DRIVER := aw20216s
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), ckled2001)
RGB_MATRIX_DRIVER := snled27351
endif
RGB_MATRIX_ENABLE ?= no
VALID_RGB_MATRIX_TYPES := aw20216 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a ckled2001 ws2812 custom
VALID_RGB_MATRIX_TYPES := aw20216s is31fl3218 is31fl3729 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a snled27351 ws2812 custom
ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
ifeq ($(filter $(RGB_MATRIX_DRIVER),$(VALID_RGB_MATRIX_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid RGB_MATRIX_DRIVER,RGB_MATRIX_DRIVER="$(RGB_MATRIX_DRIVER)" is not a valid matrix type)
endif
OPT_DEFS += -DRGB_MATRIX_ENABLE
ifneq (,$(filter $(MCU), atmega16u2 atmega32u2 at90usb162))
# ATmegaxxU2 does not have hardware MUL instruction - lib8tion must be told to use software multiplication routines
OPT_DEFS += -DLIB8_ATTINY
endif
OPT_DEFS += -DRGB_MATRIX_$(strip $(shell echo $(RGB_MATRIX_DRIVER) | tr '[:lower:]' '[:upper:]'))
COMMON_VPATH += $(QUANTUM_DIR)/rgb_matrix
COMMON_VPATH += $(QUANTUM_DIR)/rgb_matrix/animations
COMMON_VPATH += $(QUANTUM_DIR)/rgb_matrix/animations/runners
@@ -433,94 +458,93 @@ endif
SRC += $(QUANTUM_DIR)/color.c
SRC += $(QUANTUM_DIR)/rgb_matrix/rgb_matrix.c
SRC += $(QUANTUM_DIR)/rgb_matrix/rgb_matrix_drivers.c
SRC += $(LIB_PATH)/lib8tion/lib8tion.c
LIB8TION_ENABLE := yes
CIE1931_CURVE := yes
RGB_KEYCODES_ENABLE := yes
ifeq ($(strip $(RGB_MATRIX_DRIVER)), aw20216)
OPT_DEFS += -DAW20216 -DSTM32_SPI -DHAL_USE_SPI=TRUE
ifeq ($(strip $(RGB_MATRIX_DRIVER)), aw20216s)
SPI_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led
SRC += aw20216.c
QUANTUM_LIB_SRC += spi_master.c
SRC += aw20216s.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3218)
I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3218.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3729)
I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3729.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3731)
OPT_DEFS += -DIS31FL3731 -DSTM32_I2C -DHAL_USE_I2C=TRUE
I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3731.c
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3733)
OPT_DEFS += -DIS31FL3733 -DSTM32_I2C -DHAL_USE_I2C=TRUE
I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3733.c
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3736)
OPT_DEFS += -DIS31FL3736 -DSTM32_I2C -DHAL_USE_I2C=TRUE
I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3736.c
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3737)
OPT_DEFS += -DIS31FL3737 -DSTM32_I2C -DHAL_USE_I2C=TRUE
I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3737.c
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3741)
OPT_DEFS += -DIS31FL3741 -DSTM32_I2C -DHAL_USE_I2C=TRUE
I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3741.c
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3742a)
OPT_DEFS += -DIS31FLCOMMON -DIS31FL3742A -DSTM32_I2C -DHAL_USE_I2C=TRUE
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3742a)
I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31flcommon.c
QUANTUM_LIB_SRC += i2c_master.c
SRC += is31fl3742a.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3743a)
OPT_DEFS += -DIS31FLCOMMON -DIS31FL3743A -DSTM32_I2C -DHAL_USE_I2C=TRUE
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3743a)
I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31flcommon.c
QUANTUM_LIB_SRC += i2c_master.c
SRC += is31fl3743a.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3745)
OPT_DEFS += -DIS31FLCOMMON -DIS31FL3745 -DSTM32_I2C -DHAL_USE_I2C=TRUE
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3745)
I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31flcommon.c
QUANTUM_LIB_SRC += i2c_master.c
SRC += is31fl3745.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3746a)
OPT_DEFS += -DIS31FLCOMMON -DIS31FL3746A -DSTM32_I2C -DHAL_USE_I2C=TRUE
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3746a)
I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31flcommon.c
QUANTUM_LIB_SRC += i2c_master.c
SRC += is31fl3746a.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), ckled2001)
OPT_DEFS += -DCKLED2001 -DSTM32_I2C -DHAL_USE_I2C=TRUE
ifeq ($(strip $(RGB_MATRIX_DRIVER)), snled27351)
I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led
SRC += ckled2001.c
QUANTUM_LIB_SRC += i2c_master.c
SRC += snled27351.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), ws2812)
OPT_DEFS += -DWS2812
WS2812_DRIVER_REQUIRED := yes
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), apa102)
OPT_DEFS += -DAPA102
APA102_DRIVER_REQUIRED := yes
endif
@@ -567,6 +591,7 @@ ifeq ($(strip $(BACKLIGHT_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/backlight/backlight.c
SRC += $(QUANTUM_DIR)/process_keycode/process_backlight.c
OPT_DEFS += -DBACKLIGHT_ENABLE
OPT_DEFS += -DBACKLIGHT_$(strip $(shell echo $(BACKLIGHT_DRIVER) | tr '[:lower:]' '[:upper:]'))
ifneq ($(strip $(BACKLIGHT_DRIVER)), custom)
SRC += $(QUANTUM_DIR)/backlight/backlight_driver_common.c
@@ -579,35 +604,6 @@ ifeq ($(strip $(BACKLIGHT_ENABLE)), yes)
endif
endif
VALID_WS2812_DRIVER_TYPES := bitbang custom i2c pwm spi vendor
WS2812_DRIVER ?= bitbang
ifeq ($(strip $(WS2812_DRIVER_REQUIRED)), yes)
ifeq ($(filter $(WS2812_DRIVER),$(VALID_WS2812_DRIVER_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid WS2812_DRIVER,WS2812_DRIVER="$(WS2812_DRIVER)" is not a valid WS2812 driver)
endif
OPT_DEFS += -DWS2812_DRIVER_$(strip $(shell echo $(WS2812_DRIVER) | tr '[:lower:]' '[:upper:]'))
SRC += ws2812_$(strip $(WS2812_DRIVER)).c
ifeq ($(strip $(PLATFORM)), CHIBIOS)
ifeq ($(strip $(WS2812_DRIVER)), pwm)
OPT_DEFS += -DSTM32_DMA_REQUIRED=TRUE
endif
endif
# add extra deps
ifeq ($(strip $(WS2812_DRIVER)), i2c)
QUANTUM_LIB_SRC += i2c_master.c
endif
endif
ifeq ($(strip $(APA102_DRIVER_REQUIRED)), yes)
COMMON_VPATH += $(DRIVER_PATH)/led
SRC += apa102.c
endif
ifeq ($(strip $(CIE1931_CURVE)), yes)
OPT_DEFS += -DUSE_CIE1931_CURVE
LED_TABLES := yes
@@ -622,28 +618,11 @@ ifeq ($(strip $(VIA_ENABLE)), yes)
RAW_ENABLE := yes
BOOTMAGIC_ENABLE := yes
TRI_LAYER_ENABLE := yes
SRC += $(QUANTUM_DIR)/via.c
OPT_DEFS += -DVIA_ENABLE
endif
VALID_MAGIC_TYPES := yes
BOOTMAGIC_ENABLE ?= no
ifneq ($(strip $(BOOTMAGIC_ENABLE)), no)
ifeq ($(filter $(BOOTMAGIC_ENABLE),$(VALID_MAGIC_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid BOOTMAGIC_ENABLE,BOOTMAGIC_ENABLE="$(BOOTMAGIC_ENABLE)" is not a valid type of magic)
endif
ifneq ($(strip $(BOOTMAGIC_ENABLE)), no)
OPT_DEFS += -DBOOTMAGIC_LITE
QUANTUM_SRC += $(QUANTUM_DIR)/bootmagic/bootmagic_lite.c
endif
endif
COMMON_VPATH += $(QUANTUM_DIR)/bootmagic
QUANTUM_SRC += $(QUANTUM_DIR)/bootmagic/magic.c
VALID_CUSTOM_MATRIX_TYPES:= yes lite no
CUSTOM_MATRIX ?= no
ifneq ($(strip $(CUSTOM_MATRIX)), yes)
ifeq ($(filter $(CUSTOM_MATRIX),$(VALID_CUSTOM_MATRIX_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid CUSTOM_MATRIX,CUSTOM_MATRIX="$(CUSTOM_MATRIX)" is not a valid custom matrix type)
@@ -708,33 +687,35 @@ ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
COMMON_VPATH += $(QUANTUM_PATH)/split_common
endif
ifeq ($(strip $(CRC_ENABLE)), yes)
OPT_DEFS += -DCRC_ENABLE
SRC += crc.c
endif
ifeq ($(strip $(FNV_ENABLE)), yes)
OPT_DEFS += -DFNV_ENABLE
VPATH += $(LIB_PATH)/fnv
SRC += qmk_fnv_type_validation.c hash_32a.c hash_64a.c
endif
ifeq ($(strip $(LIB8TION_ENABLE)), yes)
ifneq (,$(filter $(MCU), atmega16u2 atmega32u2 at90usb162))
# ATmegaxxU2 does not have hardware MUL instruction - lib8tion must be told to use software multiplication routines
OPT_DEFS += -DLIB8_ATTINY
endif
SRC += $(LIB_PATH)/lib8tion/lib8tion.c
endif
VALID_HAPTIC_DRIVER_TYPES := drv2605l solenoid
ifeq ($(strip $(HAPTIC_ENABLE)),yes)
ifeq ($(filter $(HAPTIC_DRIVER),$(VALID_HAPTIC_DRIVER_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid HAPTIC_DRIVER,HAPTIC_DRIVER="$(HAPTIC_DRIVER)" is not a valid Haptic driver)
else
OPT_DEFS += -DHAPTIC_$(strip $(shell echo $(HAPTIC_DRIVER) | tr '[:lower:]' '[:upper:]'))
COMMON_VPATH += $(DRIVER_PATH)/haptic
ifeq ($(strip $(HAPTIC_DRIVER)), drv2605l)
I2C_DRIVER_REQUIRED = yes
SRC += drv2605l.c
QUANTUM_LIB_SRC += i2c_master.c
OPT_DEFS += -DHAPTIC_DRV2605L
endif
ifeq ($(strip $(HAPTIC_DRIVER)), solenoid)
SRC += solenoid.c
OPT_DEFS += -DHAPTIC_SOLENOID
endif
endif
endif
@@ -757,6 +738,7 @@ ifeq ($(strip $(OLED_ENABLE)), yes)
$(call CATASTROPHIC_ERROR,Invalid OLED_TRANSPORT,OLED_TRANSPORT="$(OLED_TRANSPORT)" is not a valid OLED transport)
else
OPT_DEFS += -DOLED_ENABLE
OPT_DEFS += -DOLED_$(strip $(shell echo $(OLED_DRIVER) | tr '[:lower:]' '[:upper:]'))
COMMON_VPATH += $(DRIVER_PATH)/oled
ifneq ($(strip $(OLED_DRIVER)), custom)
SRC += oled_driver.c
@@ -764,10 +746,10 @@ ifeq ($(strip $(OLED_ENABLE)), yes)
OPT_DEFS += -DOLED_TRANSPORT_$(strip $(shell echo $(OLED_TRANSPORT) | tr '[:lower:]' '[:upper:]'))
ifeq ($(strip $(OLED_TRANSPORT)), i2c)
QUANTUM_LIB_SRC += i2c_master.c
I2C_DRIVER_REQUIRED = yes
endif
ifeq ($(strip $(OLED_TRANSPORT)), spi)
QUANTUM_LIB_SRC += spi_master.c
SPI_DRIVER_REQUIRED = yes
endif
endif
endif
@@ -775,9 +757,9 @@ endif
ifeq ($(strip $(ST7565_ENABLE)), yes)
OPT_DEFS += -DST7565_ENABLE
SPI_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/oled # For glcdfont.h
COMMON_VPATH += $(DRIVER_PATH)/lcd
QUANTUM_LIB_SRC += spi_master.c
SRC += st7565.c
endif
@@ -809,27 +791,6 @@ ifeq ($(strip $(UNICODE_COMMON)), yes)
$(QUANTUM_DIR)/unicode/utf8.c
endif
MAGIC_ENABLE ?= yes
ifeq ($(strip $(MAGIC_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_magic.c
OPT_DEFS += -DMAGIC_KEYCODE_ENABLE
endif
SEND_STRING_ENABLE ?= yes
ifeq ($(strip $(SEND_STRING_ENABLE)), yes)
OPT_DEFS += -DSEND_STRING_ENABLE
COMMON_VPATH += $(QUANTUM_DIR)/send_string
SRC += $(QUANTUM_DIR)/send_string/send_string.c
endif
ifeq ($(strip $(AUTO_SHIFT_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_auto_shift.c
OPT_DEFS += -DAUTO_SHIFT_ENABLE
ifeq ($(strip $(AUTO_SHIFT_MODIFIERS)), yes)
OPT_DEFS += -DAUTO_SHIFT_MODIFIERS
endif
endif
ifeq ($(strip $(PS2_MOUSE_ENABLE)), yes)
PS2_ENABLE := yes
MOUSE_ENABLE := yes
@@ -866,15 +827,12 @@ ifeq ($(strip $(JOYSTICK_ENABLE)), yes)
$(call CATASTROPHIC_ERROR,Invalid JOYSTICK_DRIVER,JOYSTICK_DRIVER="$(JOYSTICK_DRIVER)" is not a valid joystick driver)
endif
OPT_DEFS += -DJOYSTICK_ENABLE
OPT_DEFS += -DJOYSTICK_$(strip $(shell echo $(JOYSTICK_DRIVER) | tr '[:lower:]' '[:upper:]'))
SRC += $(QUANTUM_DIR)/process_keycode/process_joystick.c
SRC += $(QUANTUM_DIR)/joystick.c
ifeq ($(strip $(JOYSTICK_DRIVER)), analog)
OPT_DEFS += -DANALOG_JOYSTICK_ENABLE
SRC += analog.c
endif
ifeq ($(strip $(JOYSTICK_DRIVER)), digital)
OPT_DEFS += -DDIGITAL_JOYSTICK_ENABLE
ANALOG_DRIVER_REQUIRED = yes
endif
endif
@@ -909,38 +867,108 @@ ifeq ($(strip $(BLUETOOTH_ENABLE)), yes)
$(call CATASTROPHIC_ERROR,Invalid BLUETOOTH_DRIVER,BLUETOOTH_DRIVER="$(BLUETOOTH_DRIVER)" is not a valid Bluetooth driver type)
endif
OPT_DEFS += -DBLUETOOTH_ENABLE
OPT_DEFS += -DBLUETOOTH_$(strip $(shell echo $(BLUETOOTH_DRIVER) | tr '[:lower:]' '[:upper:]'))
NO_USB_STARTUP_CHECK := yes
COMMON_VPATH += $(DRIVER_PATH)/bluetooth
SRC += outputselect.c
ifeq ($(strip $(BLUETOOTH_DRIVER)), bluefruit_le)
OPT_DEFS += -DBLUETOOTH_BLUEFRUIT_LE -DHAL_USE_SPI=TRUE
SPI_DRIVER_REQUIRED = yes
ANALOG_DRIVER_REQUIRED = yes
SRC += $(DRIVER_PATH)/bluetooth/bluetooth.c
SRC += $(DRIVER_PATH)/bluetooth/bluefruit_le.cpp
QUANTUM_LIB_SRC += analog.c
QUANTUM_LIB_SRC += spi_master.c
endif
ifeq ($(strip $(BLUETOOTH_DRIVER)), rn42)
OPT_DEFS += -DBLUETOOTH_RN42 -DHAL_USE_SERIAL=TRUE
UART_DRIVER_REQUIRED = yes
SRC += $(DRIVER_PATH)/bluetooth/bluetooth.c
SRC += $(DRIVER_PATH)/bluetooth/rn42.c
QUANTUM_LIB_SRC += uart.c
endif
endif
ENCODER_ENABLE ?= no
ENCODER_DRIVER ?= quadrature
VALID_ENCODER_DRIVER_TYPES := quadrature custom
ifeq ($(strip $(ENCODER_ENABLE)), yes)
ifeq ($(filter $(ENCODER_DRIVER),$(VALID_ENCODER_DRIVER_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid ENCODER_DRIVER,ENCODER_DRIVER="$(ENCODER_DRIVER)" is not a valid encoder driver)
endif
SRC += $(QUANTUM_DIR)/encoder.c
OPT_DEFS += -DENCODER_ENABLE
OPT_DEFS += -DENCODER_DRIVER_$(strip $(shell echo $(ENCODER_DRIVER) | tr '[:lower:]' '[:upper:]'))
COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/encoder
COMMON_VPATH += $(DRIVER_PATH)/encoder
ifneq ($(strip $(ENCODER_DRIVER)), custom)
SRC += encoder_$(strip $(ENCODER_DRIVER)).c
endif
ifeq ($(strip $(ENCODER_MAP_ENABLE)), yes)
OPT_DEFS += -DENCODER_MAP_ENABLE
endif
endif
ifeq ($(strip $(OS_DETECTION_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/os_detection.c
OPT_DEFS += -DOS_DETECTION_ENABLE
ifeq ($(strip $(OS_DETECTION_DEBUG_ENABLE)), yes)
OPT_DEFS += -DOS_DETECTION_DEBUG_ENABLE
ifeq ($(strip $(DIP_SWITCH_ENABLE)), yes)
ifeq ($(strip $(DIP_SWITCH_MAP_ENABLE)), yes)
OPT_DEFS += -DDIP_SWITCH_MAP_ENABLE
endif
endif
VALID_WS2812_DRIVER_TYPES := bitbang custom i2c pwm spi vendor
WS2812_DRIVER ?= bitbang
ifeq ($(strip $(WS2812_DRIVER_REQUIRED)), yes)
ifeq ($(filter $(WS2812_DRIVER),$(VALID_WS2812_DRIVER_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid WS2812_DRIVER,WS2812_DRIVER="$(WS2812_DRIVER)" is not a valid WS2812 driver)
endif
OPT_DEFS += -DWS2812_$(strip $(shell echo $(WS2812_DRIVER) | tr '[:lower:]' '[:upper:]'))
SRC += ws2812_$(strip $(WS2812_DRIVER)).c
ifeq ($(strip $(PLATFORM)), CHIBIOS)
ifeq ($(strip $(WS2812_DRIVER)), pwm)
OPT_DEFS += -DSTM32_DMA_REQUIRED=TRUE
endif
endif
# add extra deps
ifeq ($(strip $(WS2812_DRIVER)), i2c)
I2C_DRIVER_REQUIRED = yes
endif
endif
ifeq ($(strip $(APA102_DRIVER_REQUIRED)), yes)
COMMON_VPATH += $(DRIVER_PATH)/led
SRC += apa102.c
endif
ifeq ($(strip $(ANALOG_DRIVER_REQUIRED)), yes)
OPT_DEFS += -DHAL_USE_ADC=TRUE
QUANTUM_LIB_SRC += analog.c
endif
ifeq ($(strip $(I2C_DRIVER_REQUIRED)), yes)
OPT_DEFS += -DHAL_USE_I2C=TRUE
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(SPI_DRIVER_REQUIRED)), yes)
OPT_DEFS += -DHAL_USE_SPI=TRUE
QUANTUM_LIB_SRC += spi_master.c
endif
ifeq ($(strip $(UART_DRIVER_REQUIRED)), yes)
ifeq ($(strip $(PLATFORM)), CHIBIOS)
ifneq ($(filter $(MCU_SERIES),RP2040),)
OPT_DEFS += -DHAL_USE_SIO=TRUE
QUANTUM_LIB_SRC += uart_sio.c
else
OPT_DEFS += -DHAL_USE_SERIAL=TRUE
QUANTUM_LIB_SRC += uart_serial.c
endif
else
QUANTUM_LIB_SRC += uart.c
endif
endif

View File

@@ -12,6 +12,9 @@ vpath %.hpp $(VPATH_SRC)
vpath %.S $(VPATH_SRC)
VPATH :=
# Helper to return the distinct elements of a list
uniq = $(if $1,$(firstword $1) $(call uniq,$(filter-out $(firstword $1),$1)))
# Convert all SRC to OBJ
define OBJ_FROM_SRC
$(patsubst %.c,$1/%.o,$(patsubst %.cpp,$1/%.o,$(patsubst %.cc,$1/%.o,$(patsubst %.S,$1/%.o,$(patsubst %.clib,$1/%.a,$($1_SRC))))))
@@ -188,7 +191,7 @@ DFU_SUFFIX_ARGS ?=
elf: $(BUILD_DIR)/$(TARGET).elf
hex: $(BUILD_DIR)/$(TARGET).hex
uf2: $(BUILD_DIR)/$(TARGET).uf2
cpfirmware: $(FIRMWARE_FORMAT)
cpfirmware_qmk: $(FIRMWARE_FORMAT)
$(SILENT) || printf "Copying $(TARGET).$(FIRMWARE_FORMAT) to qmk_firmware folder" | $(AWK_CMD)
$(COPY) $(BUILD_DIR)/$(TARGET).$(FIRMWARE_FORMAT) $(TARGET).$(FIRMWARE_FORMAT) && $(PRINT_OK)
eep: $(BUILD_DIR)/$(TARGET).eep
@@ -197,6 +200,15 @@ sym: $(BUILD_DIR)/$(TARGET).sym
LIBNAME=lib$(TARGET).a
lib: $(LIBNAME)
cpfirmware: cpfirmware_qmk
ifneq ($(QMK_USERSPACE),)
cpfirmware: cpfirmware_userspace
cpfirmware_userspace: cpfirmware_qmk
$(SILENT) || printf "Copying $(TARGET).$(FIRMWARE_FORMAT) to userspace folder" | $(AWK_CMD)
$(COPY) $(BUILD_DIR)/$(TARGET).$(FIRMWARE_FORMAT) $(QMK_USERSPACE)/$(TARGET).$(FIRMWARE_FORMAT) && $(PRINT_OK)
endif
# Display size of file, modifying the output so people don't mistakenly grab the hex output
BINARY_SIZE = $(SIZE) --target=$(FORMAT) $(BUILD_DIR)/$(TARGET).hex | $(SED) -e 's/\.build\/.*$$/$(TARGET).$(FIRMWARE_FORMAT)/g'
@@ -264,7 +276,7 @@ BEGIN = gccversion sizebefore
# Note the obj.txt depeendency is there to force linking if a source file is deleted
%.elf: $(OBJ) $(MASTER_OUTPUT)/cflags.txt $(MASTER_OUTPUT)/ldflags.txt $(MASTER_OUTPUT)/obj.txt | $(BEGIN)
@$(SILENT) || printf "$(MSG_LINKING) $@" | $(AWK_CMD)
$(eval CMD=MAKE=$(MAKE) $(CC) $(ALL_CFLAGS) $(filter-out %.txt,$^) --output $@ $(LDFLAGS))
$(eval CMD=MAKE=$(MAKE) $(CC) $(ALL_CFLAGS) $(call uniq,$(OBJ)) --output $@ $(LDFLAGS))
@$(BUILD_CMD)
@@ -380,31 +392,9 @@ dump_vars:
objs-size:
for i in $(OBJ); do echo $$i; done | sort | xargs $(SIZE)
ifeq ($(findstring avr-gcc,$(CC)),avr-gcc)
SIZE_MARGIN = 1024
# size check optionally implemented in its platform.mk
check-size:
$(eval MAX_SIZE=$(shell n=`$(CC) -E -mmcu=$(MCU) -D__ASSEMBLER__ $(CFLAGS) $(OPT_DEFS) platforms/avr/bootloader_size.c 2> /dev/null | $(SED) -ne 's/\r//;/^#/n;/^AVR_SIZE:/,$${s/^AVR_SIZE: //;p;}'` && echo $$(($$n)) || echo 0))
$(eval CURRENT_SIZE=$(shell if [ -f $(BUILD_DIR)/$(TARGET).hex ]; then $(SIZE) --target=$(FORMAT) $(BUILD_DIR)/$(TARGET).hex | $(AWK) 'NR==2 {print $$4}'; else printf 0; fi))
$(eval FREE_SIZE=$(shell expr $(MAX_SIZE) - $(CURRENT_SIZE)))
$(eval OVER_SIZE=$(shell expr $(CURRENT_SIZE) - $(MAX_SIZE)))
$(eval PERCENT_SIZE=$(shell expr $(CURRENT_SIZE) \* 100 / $(MAX_SIZE)))
if [ $(MAX_SIZE) -gt 0 ] && [ $(CURRENT_SIZE) -gt 0 ]; then \
$(SILENT) || printf "$(MSG_CHECK_FILESIZE)" | $(AWK_CMD); \
if [ $(CURRENT_SIZE) -gt $(MAX_SIZE) ]; then \
printf "\n * $(MSG_FILE_TOO_BIG)"; $(PRINT_ERROR_PLAIN); \
else \
if [ $(FREE_SIZE) -lt $(SIZE_MARGIN) ]; then \
$(PRINT_WARNING_PLAIN); printf " * $(MSG_FILE_NEAR_LIMIT)"; \
else \
$(PRINT_OK); $(SILENT) || printf " * $(MSG_FILE_JUST_RIGHT)"; \
fi ; \
fi ; \
fi
else
check-size:
$(SILENT) || echo "$(MSG_CHECK_FILESIZE_SKIPPED)"
endif
check-md5:
$(MD5SUM) $(BUILD_DIR)/$(TARGET).$(FIRMWARE_FORMAT)

View File

@@ -25,7 +25,9 @@ ifneq ($(CONVERT_TO),)
-include $(CONVERTER)/pre_converter.mk
PLATFORM_KEY = $(shell echo $(CONVERTER) | cut -d "/" -f2)
TARGET := $(TARGET)_$(CONVERT_TO)
# force setting as value can be from environment
override TARGET := $(TARGET)_$(CONVERT_TO)
# Configure any defaults
OPT_DEFS += -DCONVERT_TO_$(shell echo $(CONVERT_TO) | tr '[:lower:]' '[:upper:]')

View File

@@ -13,39 +13,53 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
SPACE_CADET_ENABLE ?= yes
GRAVE_ESC_ENABLE ?= yes
MAGIC_ENABLE ?= yes
SEND_STRING_ENABLE ?= yes
SPACE_CADET_ENABLE ?= yes
GENERIC_FEATURES = \
AUTO_SHIFT \
AUTOCORRECT \
BOOTMAGIC \
CAPS_WORD \
COMBO \
COMMAND \
CRC \
DEFERRED_EXEC \
DIGITIZER \
DIP_SWITCH \
DYNAMIC_KEYMAP \
DYNAMIC_MACRO \
DYNAMIC_TAPPING_TERM \
GRAVE_ESC \
HAPTIC \
KEY_LOCK \
KEY_OVERRIDE \
LEADER \
MAGIC \
MOUSEKEY \
MUSIC \
OS_DETECTION \
PROGRAMMABLE_BUTTON \
REPEAT_KEY \
SECURE \
SEND_STRING \
SEQUENCER \
SPACE_CADET \
SWAP_HANDS \
TAP_DANCE \
VELOCIKEY \
TRI_LAYER \
VIA \
VIRTSER \
WPM \
DYNAMIC_TAPPING_TERM \
TRI_LAYER
define HANDLE_GENERIC_FEATURE
# $$(info "Processing: $1_ENABLE $2.c")
SRC += $$(wildcard $$(QUANTUM_DIR)/process_keycode/process_$2.c)
SRC += $$(wildcard $$(QUANTUM_DIR)/$2/$2.c)
SRC += $$(wildcard $$(QUANTUM_DIR)/$2.c)
VPATH += $$(wildcard $$(QUANTUM_DIR)/$2/)
OPT_DEFS += -D$1_ENABLE
endef

View File

@@ -91,7 +91,6 @@ MSG_AVAILABLE_KEYMAPS = $(eval $(call GENERATE_MSG_AVAILABLE_KEYMAPS))$(MSG_AVAI
MSG_BOOTLOADER_NOT_FOUND_BASE = Bootloader not found. Make sure the board is in bootloader mode. See https://docs.qmk.fm/\#/newbs_flashing\n
MSG_CHECK_FILESIZE = Checking file size of $(TARGET).$(FIRMWARE_FORMAT)
MSG_CHECK_FILESIZE_SKIPPED = (Firmware size check does not yet support $(MCU_ORIG); skipping)
MSG_FILE_TOO_BIG = $(ERROR_COLOR)The firmware is too large!$(NO_COLOR) $(CURRENT_SIZE)/$(MAX_SIZE) ($(OVER_SIZE) bytes over)\n
MSG_FILE_TOO_SMALL = The firmware is too small! $(CURRENT_SIZE)/$(MAX_SIZE)\n
MSG_FILE_JUST_RIGHT = The firmware size is fine - $(CURRENT_SIZE)/$(MAX_SIZE) ($(PERCENT_SIZE)%%, $(FREE_SIZE) bytes free)\n
@@ -104,6 +103,10 @@ MSG_BOOTLOADER_NOT_FOUND = $(ERROR_COLOR)ERROR:$(NO_COLOR) $(MSG_BOOTLOADER_NOT_
BOOTLOADER_RETRY_TIME ?= 0.5
MSG_BOOTLOADER_NOT_FOUND_QUICK_RETRY = $(MSG_BOOTLOADER_NOT_FOUND_BASE) Trying again every $(BOOTLOADER_RETRY_TIME)s (Ctrl+C to cancel)
define WARNING_MESSAGE
$(shell printf "\n %-99s $(WARN_STRING)\n" "$1" >&2)
endef
define CATASTROPHIC_ERROR
$(shell printf "\n * %-99s $(ERROR_STRING)\n" "$2" >&2)
$(error $1)

View File

@@ -37,7 +37,6 @@ OTHER_OPTION_NAMES = \
UNICODEMAP_ENABLE \
UNICODE_COMMON \
AUTO_SHIFT_ENABLE \
AUTO_SHIFT_MODIFIERS \
DYNAMIC_TAPPING_TERM_ENABLE \
COMBO_ENABLE \
KEY_LOCK_ENABLE \
@@ -60,7 +59,6 @@ OTHER_OPTION_NAMES = \
ENCODER_ENABLE_CUSTOM \
GERMAN_ENABLE \
HAPTIC_ENABLE \
ISSI_ENABLE \
KEYLOGGER_ENABLE \
LCD_BACKLIGHT_ENABLE \
MACROS_ENABLED \

View File

@@ -0,0 +1,407 @@
{
"aliases": {
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ # │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ ^ │ ¸ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ` │ < │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ « │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ É │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"KC_GRV": {
"key": "FR_HASH",
"label": "#",
}
"KC_1": {
"key": "FR_1",
"label": "1",
}
"KC_2": {
"key": "FR_2",
"label": "2",
}
"KC_3": {
"key": "FR_3",
"label": "3",
}
"KC_4": {
"key": "FR_4",
"label": "4",
}
"KC_5": {
"key": "FR_5",
"label": "5",
}
"KC_6": {
"key": "FR_6",
"label": "6",
}
"KC_7": {
"key": "FR_7",
"label": "7",
}
"KC_8": {
"key": "FR_8",
"label": "8",
}
"KC_9": {
"key": "FR_9",
"label": "9",
}
"KC_0": {
"key": "FR_0",
"label": "0",
}
"KC_MINS": {
"key": "FR_MINS",
"label": "-",
}
"KC_EQL": {
"key": "FR_EQL",
"label": "=",
}
"KC_Q": {
"key": "FR_Q",
"label": "Q",
}
"KC_W": {
"key": "FR_W",
"label": "W",
}
"KC_E": {
"key": "FR_E",
"label": "E",
}
"KC_R": {
"key": "FR_R",
"label": "R",
}
"KC_T": {
"key": "FR_T",
"label": "T",
}
"KC_Y": {
"key": "FR_Y",
"label": "Y",
}
"KC_U": {
"key": "FR_U",
"label": "U",
}
"KC_I": {
"key": "FR_I",
"label": "I",
}
"KC_O": {
"key": "FR_O",
"label": "O",
}
"KC_P": {
"key": "FR_P",
"label": "P",
}
"KC_LBRC": {
"key": "FR_DCIR",
"label": "^ (dead)",
}
"KC_RBRC": {
"key": "FR_CEDL",
"label": "¸ (dead)",
}
"KC_A": {
"key": "FR_A",
"label": "A",
}
"KC_S": {
"key": "FR_S",
"label": "S",
}
"KC_D": {
"key": "FR_D",
"label": "D",
}
"KC_F": {
"key": "FR_F",
"label": "F",
}
"KC_G": {
"key": "FR_G",
"label": "G",
}
"KC_H": {
"key": "FR_H",
"label": "H",
}
"KC_J": {
"key": "FR_J",
"label": "J",
}
"KC_K": {
"key": "FR_K",
"label": "K",
}
"KC_L": {
"key": "FR_L",
"label": "L",
}
"KC_SCLN": {
"key": "FR_SCLN",
"label": ";",
}
"KC_QUOT": {
"key": "FR_DGRV",
"label": "` (dead)",
}
"KC_NUHS": {
"key": "FR_LABK",
"label": "<",
}
"KC_NUBS": {
"key": "FR_LDAQ",
"label": "«",
}
"KC_Z": {
"key": "FR_Z",
"label": "Z",
}
"KC_X": {
"key": "FR_X",
"label": "X",
}
"KC_C": {
"key": "FR_C",
"label": "C",
}
"KC_V": {
"key": "FR_V",
"label": "V",
}
"KC_B": {
"key": "FR_B",
"label": "B",
}
"KC_N": {
"key": "FR_N",
"label": "N",
}
"KC_M": {
"key": "FR_M",
"label": "M",
}
"KC_COMM": {
"key": "FR_COMM",
"label": ",",
}
"KC_DOT": {
"key": "FR_DOT",
"label": ".",
}
"KC_SLSH": {
"key": "FR_EACU",
"label": "É",
}
/* Shifted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ | │ ! │ " │ / │ $ │ % │ ? │ & │ * │ ( │ ) │ _ │ + │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ │ ¨ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ : │ │ > │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ » │ │ │ │ │ │ │ │ ' │ │ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"S(FR_HASH)": {
"key": "FR_PIPE",
"label": "|",
}
"S(FR_1)": {
"key": "FR_EXLM",
"label": "!",
}
"S(FR_2)": {
"key": "FR_DQUO",
"label": "\"",
}
"S(FR_3)": {
"key": "FR_SLSH",
"label": "/",
}
"S(FR_4)": {
"key": "FR_DLR",
"label": "$",
}
"S(FR_5)": {
"key": "FR_PERC",
"label": "%",
}
"S(FR_6)": {
"key": "FR_QUES",
"label": "?",
}
"S(FR_7)": {
"key": "FR_AMPR",
"label": "&",
}
"S(FR_8)": {
"key": "FR_ASTR",
"label": "*",
}
"S(FR_9)": {
"key": "FR_LPRN",
"label": "(",
}
"S(FR_0)": {
"key": "FR_RPRN",
"label": ")",
}
"S(FR_MINS)": {
"key": "FR_UNDS",
"label": "_",
}
"S(FR_EQL)": {
"key": "FR_PLUS",
"label": "+",
}
"S(FR_CEDL)": {
"key": "FR_DIAE",
"label": "¨ (dead)",
}
"S(FR_SCLN)": {
"key": "FR_COLN",
"label": ":",
}
"S(FR_LABK)": {
"key": "FR_RABK",
"label": ">",
}
"S(FR_LDAQ)": {
"key": "FR_RDAQ",
"label": "»",
}
"S(FR_COMM)": {
"key": "FR_QUOT",
"label": "'",
}
/* AltGr symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ \ │ ± │ @ │ £ │ ¢ │ ¤ │ ¬ │ ¦ │ ² │ ³ │ ¼ │ ½ │ ¾ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ │ │ │ │ § │ ¶ │ [ │ ] │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ ~ │ { │ } │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ ° │ │ │ │ │ │ │ µ │ ¯ │ - │ ´ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"ALGR(FR_HASH)": {
"key": "FR_BSLS",
"label": "\\",
}
"ALGR(FR_1)": {
"key": "FR_PLMN",
"label": "±",
}
"ALGR(FR_2)": {
"key": "FR_AT",
"label": "@",
}
"ALGR(FR_3)": {
"key": "FR_PND",
"label": "£",
}
"ALGR(FR_4)": {
"key": "FR_CENT",
"label": "¢",
}
"ALGR(FR_5)": {
"key": "FR_CURR",
"label": "¤",
}
"ALGR(FR_6)": {
"key": "FR_NOT",
"label": "¬",
}
"ALGR(FR_7)": {
"key": "FR_BRKP",
"label": "¦",
}
"ALGR(FR_8)": {
"key": "FR_SUP2",
"label": "²",
}
"ALGR(FR_9)": {
"key": "FR_SUP3",
"label": "³",
}
"ALGR(FR_0)": {
"key": "FR_QRTR",
"label": "¼",
}
"ALGR(FR_MINS)": {
"key": "FR_HALF",
"label": "½",
}
"ALGR(FR_EQL)": {
"key": "FR_TQTR",
"label": "¾",
}
"ALGR(FR_O)": {
"key": "FR_SECT",
"label": "§",
}
"ALGR(FR_P)": {
"key": "FR_PARA",
"label": "¶",
}
"ALGR(FR_DCIR)": {
"key": "FR_LBRC",
"label": "[",
}
"ALGR(FR_CEDL)": {
"key": "FR_RBRC",
"label": "]",
}
"ALGR(FR_SCLN)": {
"key": "FR_TILD",
"label": "~",
}
"ALGR(FR_DGRV)": {
"key": "FR_LCBR",
"label": "{",
}
"ALGR(FR_LABK)": {
"key": "FR_RCBR",
"label": "}",
}
"ALGR(FR_LDAQ)": {
"key": "FR_DEG",
"label": "°",
}
"ALGR(FR_M)": {
"key": "FR_MICR",
"label": "µ",
}
"ALGR(FR_COMM)": {
"key": "FR_MACR",
"label": "¯",
}
"ALGR(FR_DOT)": {
"key": "FR_SHYP",
"label": "­ (soft hyphen)",
}
"ALGR(FR_EACU)": {
"key": "FR_ACUT",
"label": "´ (dead)",
}
}
}

View File

@@ -0,0 +1,291 @@
{
"aliases": {
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ | │ № │ - │ / │ " │ : │ , │ . │ _ │ ? │ % │ ! │ ; │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ Й │ Ц │ УКЕН │ Г │ Ш │ Щ │ ЗХ │ Ъ │ ) │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
* │ │ Ф │ Ы │ ВА │ П │ РО │ Л │ Д │ Ж │ Э │ │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
* │ │ Я │ Ч │ СМ │ И │ ТЬ │ Б │ Ю │ Ё │ │
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"KC_GRV": {
"key": "RU_PIPE",
"label": "|",
}
"KC_1": {
"key": "RU_NUM",
"label": "№",
}
"KC_2": {
"key": "RU_MINS",
"label": "-",
}
"KC_3": {
"key": "RU_SLSH",
"label": "/",
}
"KC_4": {
"key": "RU_DQUO",
"label": "\"",
}
"KC_5": {
"key": "RU_COLN",
"label": ":",
}
"KC_6": {
"key": "RU_COMM",
"label": ",",
}
"KC_7": {
"key": "RU_DOT",
"label": ".",
}
"KC_8": {
"key": "RU_UNDS",
"label": "_",
}
"KC_9": {
"key": "RU_QUES",
"label": "?",
}
"KC_0": {
"key": "RU_PERC",
"label": "%",
}
"KC_MINS": {
"key": "RU_EXLM",
"label": "!",
}
"KC_EQL": {
"key": "RU_SCLN",
"label": ";",
}
"KC_Q": {
"key": "RU_SHTI",
"label": "Й",
}
"KC_W": {
"key": "RU_TSE",
"label": "Ц",
}
"KC_E": {
"key": "RU_U",
"label": "У",
}
"KC_R": {
"key": "RU_KA",
"label": "К",
}
"KC_T": {
"key": "RU_IE",
"label": "Е",
}
"KC_Y": {
"key": "RU_EN",
"label": "Н",
}
"KC_U": {
"key": "RU_GHE",
"label": "Г",
}
"KC_I": {
"key": "RU_SHA",
"label": "Ш",
}
"KC_O": {
"key": "RU_SHCH",
"label": "Щ",
}
"KC_P": {
"key": "RU_ZE",
"label": "З",
}
"KC_LBRC": {
"key": "RU_HA",
"label": "Х",
}
"KC_RBRC": {
"key": "RU_HARD",
"label": "Ъ",
}
"KC_BSLS": {
"key": "RU_RPRN",
"label": ")",
}
"KC_A": {
"key": "RU_EF",
"label": "Ф",
}
"KC_S": {
"key": "RU_YERU",
"label": "Ы",
}
"KC_D": {
"key": "RU_VE",
"label": "В",
}
"KC_F": {
"key": "RU_A",
"label": "А",
}
"KC_G": {
"key": "RU_PE",
"label": "П",
}
"KC_H": {
"key": "RU_ER",
"label": "Р",
}
"KC_J": {
"key": "RU_O",
"label": "О",
}
"KC_K": {
"key": "RU_EL",
"label": "Л",
}
"KC_L": {
"key": "RU_DE",
"label": "Д",
}
"KC_SCLN": {
"key": "RU_ZHE",
"label": "Ж",
}
"KC_QUOT": {
"key": "RU_E",
"label": "Э",
}
"KC_Z": {
"key": "RU_YA",
"label": "Я",
}
"KC_X": {
"key": "RU_CHE",
"label": "Ч",
}
"KC_C": {
"key": "RU_ES",
"label": "С",
}
"KC_V": {
"key": "RU_EM",
"label": "М",
}
"KC_B": {
"key": "RU_I",
"label": "И",
}
"KC_N": {
"key": "RU_TE",
"label": "Т",
}
"KC_M": {
"key": "RU_SOFT",
"label": "Ь",
}
"KC_COMM": {
"key": "RU_BE",
"label": "Б",
}
"KC_DOT": {
"key": "RU_YU",
"label": "Ю",
}
"KC_SLSH": {
"key": "RU_YO",
"label": "Ё",
}
/* Shifted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ + │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ = │ \ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ ( │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
* │ │ │ │ │ │ │ │ │ │ │ │ │
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"S(RU_PIPE)": {
"key": "RU_PLUS",
"label": "+",
}
"S(RU_NUM)": {
"key": "RU_1",
"label": "1",
}
"S(RU_MINS)": {
"key": "RU_2",
"label": "2",
}
"S(RU_SLSH)": {
"key": "RU_3",
"label": "3",
}
"S(RU_DQUO)": {
"key": "RU_4",
"label": "4",
}
"S(RU_COLN)": {
"key": "RU_5",
"label": "5",
}
"S(RU_COMM)": {
"key": "RU_6",
"label": "6",
}
"S(RU_DOT)": {
"key": "RU_7",
"label": "7",
}
"S(RU_UNDS)": {
"key": "RU_8",
"label": "8",
}
"S(RU_QUES)": {
"key": "RU_9",
"label": "9",
}
"S(RU_PERC)": {
"key": "RU_0",
"label": "0",
}
"S(RU_EXLM)": {
"key": "RU_EQL",
"label": "=",
}
"S(RU_SCLN)": {
"key": "RU_BSLS",
"label": "\\",
}
"S(RU_RPRN)": {
"key": "RU_LPRN",
"label": "(",
}
/* AltGr symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ │ │ │ │ │ │ │ │ ₽ │ │ │ │ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
* │ │ │ │ │ │ │ │ │ │ │ │ │
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"ALGR(RU_UNDS)": {
"key": "RU_RUBL",
"label": "₽",
}
}
}

View File

@@ -0,0 +1,339 @@
{
"aliases": {
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ | │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ' │ ¿ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ ´ │ + │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Ñ │ { │ } │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ < │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"KC_GRV": {
"key": "ES_PIPE",
"label": "|",
}
"KC_1": {
"key": "ES_1",
"label": "1",
}
"KC_2": {
"key": "ES_2",
"label": "2",
}
"KC_3": {
"key": "ES_3",
"label": "3",
}
"KC_4": {
"key": "ES_4",
"label": "4",
}
"KC_5": {
"key": "ES_5",
"label": "5",
}
"KC_6": {
"key": "ES_6",
"label": "6",
}
"KC_7": {
"key": "ES_7",
"label": "7",
}
"KC_8": {
"key": "ES_8",
"label": "8",
}
"KC_9": {
"key": "ES_9",
"label": "9",
}
"KC_0": {
"key": "ES_0",
"label": "0",
}
"KC_MINS": {
"key": "ES_QUOT",
"label": "'",
}
"KC_EQL": {
"key": "ES_IQUE",
"label": "¿",
}
"KC_Q": {
"key": "ES_Q",
"label": "Q",
}
"KC_W": {
"key": "ES_W",
"label": "W",
}
"KC_E": {
"key": "ES_E",
"label": "E",
}
"KC_R": {
"key": "ES_R",
"label": "R",
}
"KC_T": {
"key": "ES_T",
"label": "T",
}
"KC_Y": {
"key": "ES_Y",
"label": "Y",
}
"KC_U": {
"key": "ES_U",
"label": "U",
}
"KC_I": {
"key": "ES_I",
"label": "I",
}
"KC_O": {
"key": "ES_O",
"label": "O",
}
"KC_P": {
"key": "ES_P",
"label": "P",
}
"KC_LBRC": {
"key": "ES_ACUT",
"label": "´ (dead)",
}
"KC_RBRC": {
"key": "ES_PLUS",
"label": "+",
}
"KC_A": {
"key": "ES_A",
"label": "A",
}
"KC_S": {
"key": "ES_S",
"label": "S",
}
"KC_D": {
"key": "ES_D",
"label": "D",
}
"KC_F": {
"key": "ES_F",
"label": "F",
}
"KC_G": {
"key": "ES_G",
"label": "G",
}
"KC_H": {
"key": "ES_H",
"label": "H",
}
"KC_J": {
"key": "ES_J",
"label": "J",
}
"KC_K": {
"key": "ES_K",
"label": "K",
}
"KC_L": {
"key": "ES_L",
"label": "L",
}
"KC_SCLN": {
"key": "ES_NTIL",
"label": "Ñ",
}
"KC_QUOT": {
"key": "ES_LCBR",
"label": "{",
}
"KC_NUHS": {
"key": "ES_RCBR",
"label": "}",
}
"KC_NUBS": {
"key": "ES_LABK",
"label": "<",
}
"KC_Z": {
"key": "ES_Z",
"label": "Z",
}
"KC_X": {
"key": "ES_X",
"label": "X",
}
"KC_C": {
"key": "ES_C",
"label": "C",
}
"KC_V": {
"key": "ES_V",
"label": "V",
}
"KC_B": {
"key": "ES_B",
"label": "B",
}
"KC_N": {
"key": "ES_N",
"label": "N",
}
"KC_M": {
"key": "ES_M",
"label": "M",
}
"KC_COMM": {
"key": "ES_COMM",
"label": ",",
}
"KC_DOT": {
"key": "ES_DOT",
"label": ".",
}
"KC_SLSH": {
"key": "ES_MINS",
"label": "-",
}
/* Shifted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ° │ ! │ " │ # │ $ │ % │ & │ / │ ( │ ) │ = │ ? │ ¡ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ ¨ │ * │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ │ [ │ ] │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ > │ │ │ │ │ │ │ │ ; │ : │ _ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"S(ES_PIPE)": {
"key": "ES_MORD",
"label": "°",
}
"S(ES_1)": {
"key": "ES_EXLM",
"label": "!",
}
"S(ES_2)": {
"key": "ES_DQUO",
"label": "\"",
}
"S(ES_3)": {
"key": "ES_NUMB",
"label": "#",
}
"S(ES_4)": {
"key": "ES_DLR",
"label": "$",
}
"S(ES_5)": {
"key": "ES_PERC",
"label": "%",
}
"S(ES_6)": {
"key": "ES_AMPR",
"label": "&",
}
"S(ES_7)": {
"key": "ES_SLSH",
"label": "/",
}
"S(ES_8)": {
"key": "ES_LPRN",
"label": "(",
}
"S(ES_9)": {
"key": "ES_RPRN",
"label": ")",
}
"S(ES_0)": {
"key": "ES_EQL",
"label": "=",
}
"S(ES_QUOT)": {
"key": "ES_QUES",
"label": "?",
}
"S(ES_IQUE)": {
"key": "ES_IEXL",
"label": "¡",
}
"S(ES_ACUT)": {
"key": "ES_DIAE",
"label": "¨ (dead)",
}
"S(ES_PLUS)": {
"key": "ES_ASTR",
"label": "*",
}
"S(ES_LCBR)": {
"key": "ES_LBRC",
"label": "[",
}
"S(ES_RCBR)": {
"key": "ES_RBRC",
"label": "]",
}
"S(ES_LABK)": {
"key": "ES_RABK",
"label": ">",
}
"S(ES_COMM)": {
"key": "ES_SCLN",
"label": ";",
}
"S(ES_DOT)": {
"key": "ES_COLN",
"label": ":",
}
"S(ES_MINS)": {
"key": "ES_UNDS",
"label": "_",
}
/* AltGr symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ¬ │ │ │ │ │ │ │ │ │ │ │ \ │ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ @ │ │ │ │ │ │ │ │ │ │ │ ~ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ │ ^ │ ` │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"ALGR(ES_PIPE)": {
"key": "ES_NOT",
"label": "¬",
}
"ALGR(ES_QUOT)": {
"key": "ES_BSLS",
"label": "\\",
}
"ALGR(ES_Q)": {
"key": "ES_AT",
"label": "@",
}
"ALGR(ES_PLUS)": {
"key": "ES_TILD",
"label": "~",
}
"ALGR(ES_LCBR)": {
"key": "ES_CIRC",
"label": "^",
}
}
}

View File

@@ -1,84 +1,89 @@
{
"development_board": {
"promicro": {
"processor": "atmega32u4",
"bootloader": "caterina",
"pin_compatible": "promicro"
},
"elite_c": {
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"pin_compatible": "promicro"
},
"elite_pi": {
"processor": "RP2040",
"bootloader": "rp2040",
"board": "QMK_PM2040"
},
"proton_c": {
"processor": "STM32F303",
"bootloader": "stm32-dfu",
"board": "QMK_PROTON_C"
},
"kb2040": {
"processor": "RP2040",
"bootloader": "rp2040",
"board": "QMK_PM2040"
},
"promicro_rp2040": {
"processor": "RP2040",
"bootloader": "rp2040",
"board": "QMK_PM2040"
},
"blok": {
"processor": "RP2040",
"bootloader": "rp2040",
"board": "QMK_BLOK"
},
"michi": {
"processor": "RP2040",
"bootloader": "rp2040",
"board": "QMK_PM2040"
},
"bit_c_pro": {
"processor": "RP2040",
"board": "QMK_PM2040",
"bootloader": "rp2040",
"board": "QMK_PM2040"
},
"bluepill": {
"processor": "STM32F103",
"bootloader": "stm32duino",
"board": "STM32_F103_STM32DUINO"
"processor": "RP2040"
},
"blackpill_f401": {
"processor": "STM32F401",
"board": "BLACKPILL_STM32_F401",
"bootloader": "stm32-dfu",
"board": "BLACKPILL_STM32_F401"
"processor": "STM32F401"
},
"blackpill_f411": {
"processor": "STM32F411",
"board": "BLACKPILL_STM32_F411",
"bootloader": "stm32-dfu",
"board": "BLACKPILL_STM32_F411"
"processor": "STM32F411"
},
"stemcell": {
"processor": "STM32F411",
"bootloader": "tinyuf2",
"board": "STEMCELL"
"blok": {
"board": "QMK_BLOK",
"bootloader": "rp2040",
"processor": "RP2040"
},
"bluepill": {
"board": "STM32_F103_STM32DUINO",
"bootloader": "stm32duino",
"processor": "STM32F103"
},
"bonsai_c4": {
"processor": "STM32F411",
"board": "BONSAI_C4",
"bootloader": "stm32-dfu",
"board": "BONSAI_C4"
"processor": "STM32F411"
},
"elite_c": {
"bootloader": "atmel-dfu",
"pin_compatible": "promicro",
"processor": "atmega32u4"
},
"elite_pi": {
"board": "QMK_PM2040",
"bootloader": "rp2040",
"processor": "RP2040"
},
"helios": {
"board": "QMK_PM2040",
"bootloader": "rp2040",
"processor": "RP2040"
},
"imera": {
"processor": "RP2040",
"bootloader": "rp2040",
"board": "QMK_PM2040"
},
"liatris": {
"processor": "RP2040",
"kb2040": {
"board": "QMK_PM2040",
"bootloader": "rp2040",
"board": "QMK_PM2040"
"processor": "RP2040"
},
"liatris": {
"board": "QMK_PM2040",
"bootloader": "rp2040",
"processor": "RP2040"
},
"michi": {
"board": "QMK_PM2040",
"bootloader": "rp2040",
"processor": "RP2040"
},
"promicro": {
"bootloader": "caterina",
"pin_compatible": "promicro",
"processor": "atmega32u4"
},
"promicro_rp2040": {
"board": "QMK_PM2040",
"bootloader": "rp2040",
"processor": "RP2040"
},
"proton_c": {
"board": "QMK_PROTON_C",
"bootloader": "stm32-dfu",
"processor": "STM32F303"
},
"stemcell": {
"board": "STEMCELL",
"bootloader": "tinyuf2",
"processor": "STM32F411"
}
}
}

View File

@@ -3,7 +3,7 @@
{
// Format:
// <config.h key>: {"info_key": <info.json key>, ["value_type": <value_type>], ["to_json": <true/false>], ["to_c": <true/false>]}
// value_type: one of "array", "array.int", "bool", "int", "hex", "list", "mapping", "str", "raw"
// value_type: one of "array", "array.int", "bool, "flag", "int", "hex", "list", "mapping", "str", "raw"
// to_json: Default `true`. Set to `false` to exclude this mapping from info.json
// to_c: Default `true`. Set to `false` to exclude this mapping from config.h
// warn_duplicate: Default `true`. Set to `false` to turn off warning when a value exists in both places
@@ -17,38 +17,51 @@
"APA102_DI_PIN": {"info_key": "apa102.data_pin"},
// Audio
"AUDIO_VOICES": {"info_key": "audio.voices", "value_type": "bool"},
"SENDSTRING_BELL": {"info_key": "audio.macro_beep", "value_type": "bool"},
"AUDIO_DEFAULT_ON": {"info_key": "audio.default.on", "value_type": "bool"},
"AUDIO_DEFAULT_CLICKY_ON": {"info_key": "audio.default.clicky", "value_type": "bool"},
"AUDIO_VOICES": {"info_key": "audio.voices", "value_type": "flag"},
"SENDSTRING_BELL": {"info_key": "audio.macro_beep", "value_type": "flag"},
// Backlight
"BACKLIGHT_BREATHING": {"info_key": "backlight.breathing", "value_type": "bool"},
"BACKLIGHT_CAPS_LOCK": {"info_key": "backlight.as_caps_lock", "value_type": "bool"},
"BACKLIGHT_BREATHING": {"info_key": "backlight.breathing", "value_type": "flag"},
"BACKLIGHT_CAPS_LOCK": {"info_key": "backlight.as_caps_lock", "value_type": "flag"},
"BACKLIGHT_LEVELS": {"info_key": "backlight.levels", "value_type": "int"},
"BACKLIGHT_LIMIT_VAL": {"info_key": "backlight.max_brightness", "value_type": "int"},
"BACKLIGHT_ON_STATE": {"info_key": "backlight.on_state", "value_type": "int"},
"BACKLIGHT_PIN": {"info_key": "backlight.pin"},
"BACKLIGHT_PINS": {"info_key": "backlight.pins", "value_type": "array"},
"BREATHING_PERIOD": {"info_key": "backlight.breathing_period", "value_type": "int"},
"BACKLIGHT_DEFAULT_ON": {"info_key": "backlight.default.on", "value_type": "bool"},
"BACKLIGHT_DEFAULT_BREATHING": {"info_key": "backlight.default.breathing", "value_type": "bool"},
"BACKLIGHT_DEFAULT_LEVEL": {"info_key": "backlight.default.brightness", "value_type": "int"},
// Bootmagic
"BOOTMAGIC_LITE_COLUMN": {"info_key": "bootmagic.matrix.1", "value_type": "int"},
"BOOTMAGIC_LITE_COLUMN_RIGHT": {"info_key": "split.bootmagic.matrix.1", "value_type": "int"},
"BOOTMAGIC_LITE_ROW": {"info_key": "bootmagic.matrix.0", "value_type": "int"},
"BOOTMAGIC_LITE_ROW_RIGHT": {"info_key": "split.bootmagic.matrix.0", "value_type": "int"},
"BOOTMAGIC_COLUMN": {"info_key": "bootmagic.matrix.1", "value_type": "int"},
"BOOTMAGIC_COLUMN_RIGHT": {"info_key": "split.bootmagic.matrix.1", "value_type": "int"},
"BOOTMAGIC_ROW": {"info_key": "bootmagic.matrix.0", "value_type": "int"},
"BOOTMAGIC_ROW_RIGHT": {"info_key": "split.bootmagic.matrix.0", "value_type": "int"},
// Caps Word
"BOTH_SHIFTS_TURNS_ON_CAPS_WORD": {"info_key": "caps_word.both_shifts_turns_on", "value_type": "bool"},
"BOTH_SHIFTS_TURNS_ON_CAPS_WORD": {"info_key": "caps_word.both_shifts_turns_on", "value_type": "flag"},
"CAPS_WORD_IDLE_TIMEOUT": {"info_key": "caps_word.idle_timeout", "value_type": "int"},
"CAPS_WORD_INVERT_ON_SHIFT": {"info_key": "caps_word.invert_on_shift", "value_type": "bool"},
"DOUBLE_TAP_SHIFT_TURNS_ON_CAPS_WORD": {"info_key": "caps_word.double_tap_shift_turns_on", "value_type": "bool"},
"CAPS_WORD_INVERT_ON_SHIFT": {"info_key": "caps_word.invert_on_shift", "value_type": "flag"},
"DOUBLE_TAP_SHIFT_TURNS_ON_CAPS_WORD": {"info_key": "caps_word.double_tap_shift_turns_on", "value_type": "flag"},
// Combos
"COMBO_TERM": {"info_key": "combo.term", "value_type": "int"},
"DIP_SWITCH_MATRIX_GRID": {"info_key": "dip_switch.matrix_grid", "value_type": "array.array.int", "to_json": false},
"DIP_SWITCH_PINS": {"info_key": "dip_switch.pins", "value_type": "array"},
"DIP_SWITCH_PINS_RIGHT": {"info_key": "split.dip_switch.right.pins", "value_type": "array"},
// Dynamic Keymap
"DYNAMIC_KEYMAP_EEPROM_MAX_ADDR": {"info_key": "dynamic_keymap.eeprom_max_addr", "value_type": "int"},
"DYNAMIC_KEYMAP_LAYER_COUNT": {"info_key": "dynamic_keymap.layer_count", "value_type": "int"},
// EEPROM
"WEAR_LEVELING_BACKING_SIZE": {"info_key": "eeprom.wear_leveling.backing_size", "value_type": "int", "to_json": false},
"WEAR_LEVELING_LOGICAL_SIZE": {"info_key": "eeprom.wear_leveling.logical_size", "value_type": "int", "to_json": false},
// Indicators
"LED_CAPS_LOCK_PIN": {"info_key": "indicators.caps_lock"},
"LED_NUM_LOCK_PIN": {"info_key": "indicators.num_lock"},
@@ -58,18 +71,29 @@
"LED_PIN_ON_STATE": {"info_key": "indicators.on_state", "value_type": "int"},
// Leader Key
"LEADER_PER_KEY_TIMING": {"info_key": "leader_key.timing", "value_type": "bool"},
"LEADER_KEY_STRICT_KEY_PROCESSING": {"info_key": "leader_key.strict_processing", "value_type": "bool"},
"LEADER_PER_KEY_TIMING": {"info_key": "leader_key.timing", "value_type": "flag"},
"LEADER_KEY_STRICT_KEY_PROCESSING": {"info_key": "leader_key.strict_processing", "value_type": "flag"},
"LEADER_TIMEOUT": {"info_key": "leader_key.timeout", "value_type": "int"},
// LED Matrix
"LED_MATRIX_CENTER": {"info_key": "led_matrix.center_point", "value_type": "array.int"},
"LED_MATRIX_KEYRELEASES": {"info_key": "led_matrix.react_on_keyup", "value_type": "flag"},
"LED_MATRIX_LED_FLUSH_LIMIT": {"info_key": "led_matrix.led_flush_limit", "value_type": "int"},
"LED_MATRIX_LED_PROCESS_LIMIT": {"info_key": "led_matrix.led_process_limit", "value_type": "int", "to_json": false},
"LED_MATRIX_MAXIMUM_BRIGHTNESS": {"info_key": "led_matrix.max_brightness", "value_type": "int"},
"LED_MATRIX_SLEEP": {"info_key": "led_matrix.sleep", "value_type": "flag"},
"LED_MATRIX_SPD_STEP": {"info_key": "led_matrix.speed_steps", "value_type": "int"},
"LED_MATRIX_SPLIT": {"info_key": "led_matrix.split_count", "value_type": "array.int"},
"LED_MATRIX_TIMEOUT": {"info_key": "led_matrix.timeout", "value_type": "int"},
"LED_MATRIX_VAL_STEP": {"info_key": "led_matrix.val_steps", "value_type": "int"},
"LED_MATRIX_LED_COUNT": {"info_key": "led_matrix.led_count", "value_type": "int", "to_json": false},
"LED_MATRIX_DEFAULT_ON": {"info_key": "led_matrix.default.on", "value_type": "bool"},
"LED_MATRIX_DEFAULT_VAL": {"info_key": "led_matrix.default.val", "value_type": "int"},
"LED_MATRIX_DEFAULT_SPD": {"info_key": "led_matrix.default.speed", "value_type": "int"},
// Locking Switch
"LOCKING_SUPPORT_ENABLE": {"info_key": "qmk.locking.enabled", "value_type": "flag"},
"LOCKING_RESYNC_ENABLE": {"info_key": "qmk.locking.resync", "value_type": "flag"},
// LUFA Bootloader
"QMK_ESC_INPUT": {"info_key": "qmk_lufa_bootloader.esc_input"},
@@ -80,7 +104,7 @@
// Matrix
"DEBOUNCE": {"info_key": "debounce", "value_type": "int"},
"DIODE_DIRECTION": {"info_key": "diode_direction"},
"MATRIX_HAS_GHOST": {"info_key": "matrix_pins.ghost", "value_type": "bool"},
"MATRIX_HAS_GHOST": {"info_key": "matrix_pins.ghost", "value_type": "flag"},
"MATRIX_INPUT_PRESSED_STATE": {"info_key": "matrix_pins.input_pressed_state", "value_type": "int"},
"MATRIX_IO_DELAY": {"info_key": "matrix_pins.io_delay", "value_type": "int"},
@@ -102,29 +126,43 @@
// RGB Matrix
"RGB_MATRIX_CENTER": {"info_key": "rgb_matrix.center_point", "value_type": "array.int"},
"RGB_MATRIX_HUE_STEP": {"info_key": "rgb_matrix.hue_steps", "value_type": "int"},
"RGB_MATRIX_KEYRELEASES": {"info_key": "rgb_matrix.react_on_keyup", "value_type": "flag"},
"RGB_MATRIX_LED_FLUSH_LIMIT": {"info_key": "rgb_matrix.led_flush_limit", "value_type": "int"},
"RGB_MATRIX_LED_PROCESS_LIMIT": {"info_key": "rgb_matrix.led_process_limit", "value_type": "int", "to_json": false},
"RGB_MATRIX_MAXIMUM_BRIGHTNESS": {"info_key": "rgb_matrix.max_brightness", "value_type": "int"},
"RGB_MATRIX_SAT_STEP": {"info_key": "rgb_matrix.sat_steps", "value_type": "int"},
"RGB_MATRIX_SLEEP": {"info_key": "rgb_matrix.sleep", "value_type": "flag"},
"RGB_MATRIX_SPD_STEP": {"info_key": "rgb_matrix.speed_steps", "value_type": "int"},
"RGB_MATRIX_SPLIT": {"info_key": "rgb_matrix.split_count", "value_type": "array.int"},
"RGB_MATRIX_TIMEOUT": {"info_key": "rgb_matrix.timeout", "value_type": "int"},
"RGB_MATRIX_VAL_STEP": {"info_key": "rgb_matrix.val_steps", "value_type": "int"},
"RGB_MATRIX_LED_COUNT": {"info_key": "rgb_matrix.led_count", "value_type": "int", "to_json": false},
"RGB_MATRIX_DEFAULT_ON": {"info_key": "rgb_matrix.default.on", "value_type": "bool"},
"RGB_MATRIX_DEFAULT_HUE": {"info_key": "rgb_matrix.default.hue", "value_type": "int"},
"RGB_MATRIX_DEFAULT_SAT": {"info_key": "rgb_matrix.default.sat", "value_type": "int"},
"RGB_MATRIX_DEFAULT_VAL": {"info_key": "rgb_matrix.default.val", "value_type": "int"},
"RGB_MATRIX_DEFAULT_SPD": {"info_key": "rgb_matrix.default.speed", "value_type": "int"},
// RGBLight
"RGBLED_NUM": {"info_key": "rgblight.led_count", "value_type": "int"},
"RGBLED_SPLIT": {"info_key": "rgblight.split_count", "value_type": "array.int"},
"RGBLIGHT_HUE_STEP": {"info_key": "rgblight.hue_steps", "value_type": "int"},
"RGBLIGHT_LAYER_BLINK": {"info_key": "rgblight.layers.blink", "value_type": "bool"},
"RGBLIGHT_LAYERS": {"info_key": "rgblight.layers.enabled", "value_type": "bool"},
"RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF": {"info_key": "rgblight.layers.override_rgb", "value_type": "bool"},
"RGBLIGHT_LAYER_BLINK": {"info_key": "rgblight.layers.blink", "value_type": "flag"},
"RGBLIGHT_LAYERS": {"info_key": "rgblight.layers.enabled", "value_type": "flag"},
"RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF": {"info_key": "rgblight.layers.override_rgb", "value_type": "flag"},
"RGBLIGHT_LED_COUNT": {"info_key": "rgblight.led_count", "value_type": "int"},
"RGBLIGHT_LED_MAP": {"info_key": "rgblight.led_map", "value_type": "array.int"},
"RGBLIGHT_LIMIT_VAL": {"info_key": "rgblight.max_brightness", "value_type": "int"},
"RGBLIGHT_MAX_LAYERS": {"info_key": "rgblight.layers.max", "value_type": "int"},
"RGBLIGHT_SAT_STEP": {"info_key": "rgblight.saturation_steps", "value_type": "int"},
"RGBLIGHT_SLEEP": {"info_key": "rgblight.sleep", "value_type": "bool"},
"RGBLIGHT_SPLIT": {"info_key": "rgblight.split", "value_type": "bool"},
"RGBLIGHT_SLEEP": {"info_key": "rgblight.sleep", "value_type": "flag"},
"RGBLIGHT_SPLIT": {"info_key": "rgblight.split", "value_type": "flag"},
"RGBLIGHT_VAL_STEP": {"info_key": "rgblight.brightness_steps", "value_type": "int"},
"RGBW": {"info_key": "rgblight.rgbw", "value_type": "bool"},
"RGBLIGHT_DEFAULT_ON": {"info_key": "rgblight.default.on", "value_type": "bool"},
"RGBLIGHT_DEFAULT_HUE": {"info_key": "rgblight.default.hue", "value_type": "int"},
"RGBLIGHT_DEFAULT_SAT": {"info_key": "rgblight.default.sat", "value_type": "int"},
"RGBLIGHT_DEFAULT_VAL": {"info_key": "rgblight.default.val", "value_type": "int"},
"RGBLIGHT_DEFAULT_SPD": {"info_key": "rgblight.default.speed", "value_type": "int"},
"RGBW": {"info_key": "rgblight.rgbw", "value_type": "flag"},
// Secure
"SECURE_IDLE_TIMEOUT": {"info_key": "secure.idle_timeout", "value_type": "int"},
@@ -134,29 +172,39 @@
// Split Keyboard
"SOFT_SERIAL_PIN": {"info_key": "split.soft_serial_pin"},
"SOFT_SERIAL_SPEED": {"info_key": "split.soft_serial_speed"},
"SPLIT_MODS_ENABLE": {"info_key": "split.transport.sync_modifiers", "value_type": "bool"},
"SPLIT_TRANSPORT_MIRROR": {"info_key": "split.transport.sync_matrix_state", "value_type": "bool"},
"SPLIT_USB_DETECT": {"info_key": "split.usb_detect.enabled", "value_type": "bool"},
"SPLIT_HAND_MATRIX_GRID": {"info_key": "split.handedness.matrix_grid", "value_type": "array", "to_c": false},
"SPLIT_HAND_PIN": {"info_key": "split.handedness.pin"},
"SPLIT_USB_DETECT": {"info_key": "split.usb_detect.enabled", "value_type": "flag"},
"SPLIT_USB_TIMEOUT": {"info_key": "split.usb_detect.timeout", "value_type": "int"},
"SPLIT_USB_TIMEOUT_POLL": {"info_key": "split.usb_detect.polling_interval", "value_type": "int"},
"SPLIT_WATCHDOG_ENABLE": {"info_key": "split.transport.watchdog", "value_type": "bool"},
"SPLIT_WATCHDOG_ENABLE": {"info_key": "split.transport.watchdog", "value_type": "flag"},
"SPLIT_WATCHDOG_TIMEOUT": {"info_key": "split.transport.watchdog_timeout", "value_type": "int"},
"SPLIT_ACTIVITY_ENABLE": {"info_key": "split.transport.sync.activity", "value_type": "flag"},
"SPLIT_DETECTED_OS_ENABLE": {"info_key": "split.transport.sync.detected_os", "value_type": "flag"},
"SPLIT_HAPTIC_ENABLE": {"info_key": "split.transport.sync.haptic", "value_type": "flag"},
"SPLIT_LAYER_STATE_ENABLE": {"info_key": "split.transport.sync.layer_state", "value_type": "flag"},
"SPLIT_LED_STATE_ENABLE": {"info_key": "split.transport.sync.indicators", "value_type": "flag"},
"SPLIT_TRANSPORT_MIRROR": {"info_key": "split.transport.sync.matrix_state", "value_type": "flag"},
"SPLIT_MODS_ENABLE": {"info_key": "split.transport.sync.modifiers", "value_type": "flag"},
"SPLIT_OLED_ENABLE": {"info_key": "split.transport.sync.oled", "value_type": "flag"},
"SPLIT_ST7565_ENABLE": {"info_key": "split.transport.sync.st7565", "value_type": "flag"},
"SPLIT_WPM_ENABLE": {"info_key": "split.transport.sync.wpm", "value_type": "flag"},
// Tapping
"HOLD_ON_OTHER_KEY_PRESS": {"info_key": "tapping.hold_on_other_key_press", "value_type": "bool"},
"HOLD_ON_OTHER_KEY_PRESS_PER_KEY": {"info_key": "tapping.hold_on_other_key_press_per_key", "value_type": "bool"},
"PERMISSIVE_HOLD": {"info_key": "tapping.permissive_hold", "value_type": "bool"},
"PERMISSIVE_HOLD_PER_KEY": {"info_key": "tapping.permissive_hold_per_key", "value_type": "bool"},
"RETRO_TAPPING": {"info_key": "tapping.retro", "value_type": "bool"},
"RETRO_TAPPING_PER_KEY": {"info_key": "tapping.retro_per_key", "value_type": "bool"},
"HOLD_ON_OTHER_KEY_PRESS": {"info_key": "tapping.hold_on_other_key_press", "value_type": "flag"},
"HOLD_ON_OTHER_KEY_PRESS_PER_KEY": {"info_key": "tapping.hold_on_other_key_press_per_key", "value_type": "flag"},
"PERMISSIVE_HOLD": {"info_key": "tapping.permissive_hold", "value_type": "flag"},
"PERMISSIVE_HOLD_PER_KEY": {"info_key": "tapping.permissive_hold_per_key", "value_type": "flag"},
"RETRO_TAPPING": {"info_key": "tapping.retro", "value_type": "flag"},
"RETRO_TAPPING_PER_KEY": {"info_key": "tapping.retro_per_key", "value_type": "flag"},
"TAP_CODE_DELAY": {"info_key": "qmk.tap_keycode_delay", "value_type": "int"},
"TAP_HOLD_CAPS_DELAY": {"info_key": "qmk.tap_capslock_delay", "value_type": "int"},
"TAPPING_TERM": {"info_key": "tapping.term", "value_type": "int"},
"TAPPING_TERM_PER_KEY": {"info_key": "tapping.term_per_key", "value_type": "bool"},
"TAPPING_TERM_PER_KEY": {"info_key": "tapping.term_per_key", "value_type": "flag"},
"TAPPING_TOGGLE": {"info_key": "tapping.toggle", "value_type": "int"},
// USB
"FORCE_NKRO": {"info_key": "usb.force_nkro", "value_type": "bool"},
"FORCE_NKRO": {"info_key": "usb.force_nkro", "value_type": "flag"},
"USB_MAX_POWER_CONSUMPTION": {"info_key": "usb.max_power", "value_type": "int"},
"USB_POLLING_INTERVAL_MS": {"info_key": "usb.polling_interval", "value_type": "int"},
"USB_SUSPEND_WAKEUP_DELAY": {"info_key": "usb.suspend_wakeup_delay", "value_type": "int"},
@@ -171,16 +219,18 @@
// Items we want flagged in lint
"DEBOUNCING_DELAY": {"info_key": "_invalid.debouncing_delay", "invalid": true, "replace_with": "DEBOUNCE"},
"DESCRIPTION": {"info_key": "_invalid.usb_description", "invalid": true},
"IGNORE_MOD_TAP_INTERRUPT": {"info_key": "_invalid.ignore_mod_tap_interrupt", "value_type": "bool", "invalid": true},
"IGNORE_MOD_TAP_INTERRUPT_PER_KEY": {"info_key": "_invalid.ignore_mod_tap_interrupt_per_key", "invalid": true}
"IGNORE_MOD_TAP_INTERRUPT": {"info_key": "_invalid.ignore_mod_tap_interrupt", "value_type": "flag", "invalid": true},
"IGNORE_MOD_TAP_INTERRUPT_PER_KEY": {"info_key": "_invalid.ignore_mod_tap_interrupt_per_key", "invalid": true},
"LED_DISABLE_WHEN_USB_SUSPENDED": {"info_key": "_invalid.led_matrix_sleep", "invalid": true, "replace_with": "LED_MATRIX_SLEEP"},
"NO_ACTION_FUNCTION": {"info_key": "_invalid.no_action_function", "invalid": true},
"NO_ACTION_MACRO": {"info_key": "_invalid.no_action_macro", "invalid": true},
"PREVENT_STUCK_MODIFIERS": {"info_key": "_invalid.prevent_stuck_mods", "invalid": true},
"QMK_KEYS_PER_SCAN": {"info_key": "qmk.keys_per_scan", "value_type": "int", "deprecated": true},
"RGB_DI_PIN": {"info_key": "rgblight.pin", "invalid": true, "replace_with": "WS2812_DI_PIN or APA102_DI_PIN"},
"RGBLIGHT_ANIMATIONS": {"info_key": "_invalid.rgblight.animations.all", "value_type": "bool", "invalid": true},
"TAPPING_FORCE_HOLD": {"info_key": "tapping.force_hold", "value_type": "bool", "deprecated": true},
"TAPPING_FORCE_HOLD_PER_KEY": {"info_key": "tapping.force_hold_per_key", "value_type": "bool", "deprecated": true},
"RGB_DISABLE_WHEN_USB_SUSPENDED": {"info_key": "_invalid.rgb_matrix_sleep", "invalid": true, "replace_with": "RGB_MATRIX_SLEEP"},
"RGBLIGHT_ANIMATIONS": {"info_key": "_invalid.rgblight.animations.all", "value_type": "flag", "invalid": true},
"TAPPING_FORCE_HOLD": {"info_key": "tapping.force_hold", "value_type": "flag", "deprecated": true},
"TAPPING_FORCE_HOLD_PER_KEY": {"info_key": "tapping.force_hold_per_key", "value_type": "flag", "deprecated": true},
"UNUSED_PINS": {"info_key": "_invalid.unused_pins", "deprecated": true},
"COMBO_COUNT": {"info_key": "_invalid.combo.count", "invalid": true},
@@ -190,4 +240,9 @@
"PRODUCT": {"info_key": "keyboard_name", "warn_duplicate": false, "value_type": "str", "deprecated": true, "replace_with": "`keyboard_name` in info.json"},
"PRODUCT_ID": {"info_key": "usb.pid", "value_type": "hex", "deprecated": true, "replace_with": "`usb.pid` in info.json"},
"VENDOR_ID": {"info_key": "usb.vid", "value_type": "hex", "deprecated": true, "replace_with": "`usb.vid` in info.json"},
// Items we want flagged in lint
"VIAL_KEYBOARD_UID": {"info_key": "_invalid.vial_uid", "invalid": true},
"VIAL_UNLOCK_COMBO_COLS": {"info_key": "_invalid.vial_unlock_cols", "invalid": true},
"VIAL_UNLOCK_COMBO_ROWS": {"info_key": "_invalid.vial_unlock_rows", "invalid": true}
}

View File

@@ -17,9 +17,11 @@
"BOOTLOADER": {"info_key": "bootloader", "warn_duplicate": false},
"BOOTMAGIC_ENABLE": {"info_key": "bootmagic.enabled", "value_type": "bool"},
"CAPS_WORD_ENABLE": {"info_key": "caps_word.enabled", "value_type": "bool"},
"DIP_SWITCH_ENABLE": {"info_key": "dip_switch.enabled", "value_type": "bool"},
"DEBOUNCE_TYPE": {"info_key": "build.debounce_type"},
"EEPROM_DRIVER": {"info_key": "eeprom.driver"},
"ENCODER_ENABLE": {"info_key": "encoder.enabled", "value_type": "bool"},
"ENCODER_DRIVER": {"info_key": "encoder.driver"},
"FIRMWARE_FORMAT": {"info_key": "build.firmware_format"},
"KEYBOARD_SHARED_EP": {"info_key": "usb.shared_endpoint.keyboard", "value_type": "bool"},
"LAYOUTS": {"info_key": "community_layouts", "value_type": "list"},
@@ -42,6 +44,7 @@
"STENO_ENABLE": {"info_key": "stenography.enabled", "value_type": "bool"},
"STENO_PROTOCOL": {"info_key": "stenography.protocol"},
"WAIT_FOR_USB": {"info_key": "usb.wait_for", "value_type": "bool"},
"WEAR_LEVELING_DRIVER": {"info_key": "eeprom.wear_leveling.driver"},
"WS2812_DRIVER": {"info_key": "ws2812.driver"},
// Items we want flagged in lint

View File

@@ -4,6 +4,13 @@
// "target": "<keyboard_folder>"
// }
//
/* This list of aliases is for testing purposes -- ensures "linked list" recursive traversal works correctly. */
"_test_a": { "target": "_test_b" },
"_test_b": { "target": "_test_c" },
"_test_c": { "target": "planck/rev6" },
/* The main list of aliases for moved keyboards within QMK. */
"2_milk": {
"target": "spaceman/2_milk"
},
@@ -35,7 +42,7 @@
"target": "amjkeyboard/amjpad"
},
"angel64": {
"target": "angel64/alpha"
"target": "kakunpc/angel64/alpha"
},
"ashpil/modelm_usbc": {
"target": "ibm/model_m/ashpil_usbc"
@@ -47,10 +54,10 @@
"target": "viktus/at101_bh"
},
"atom47/rev2": {
"target": "maartenwut/atom47/rev2"
"target": "evyd13/atom47/rev2"
},
"atom47/rev3": {
"target": "maartenwut/atom47/rev3"
"target": "evyd13/atom47/rev3"
},
"bakeneko60": {
"target": "kkatano/bakeneko60"
@@ -65,7 +72,7 @@
"target": "bear_face/v1"
},
"bm16a": {
"target": "kprepublic/bm16a"
"target": "kprepublic/bm16a/v1"
},
"bm16s": {
"target": "kprepublic/bm16s"
@@ -77,16 +84,16 @@
"target": "kprepublic/bm43a"
},
"bm60poker": {
"target": "kprepublic/bm60poker"
"target": "kprepublic/bm60hsrgb_poker/rev1"
},
"bm60rgb": {
"target": "kprepublic/bm60rgb"
"target": "kprepublic/bm60hsrgb/rev1"
},
"bm60rgb_iso": {
"target": "kprepublic/bm60rgb_iso"
"target": "kprepublic/bm60hsrgb_iso/rev1"
},
"bm68rgb": {
"target": "kprepublic/bm68rgb"
"target": "kprepublic/bm68hsrgb/rev1"
},
"bpiphany/pegasushoof": {
"target": "bpiphany/pegasushoof/2013"
@@ -136,11 +143,17 @@
"daisy": {
"target": "ktec/daisy"
},
"dp3000": {
"target": "dp3000/rev1"
},
"drakon": {
"target": "jagdpietr/drakon"
},
"durgod/k320": {
"target": "durgod/k3x0/k320"
"target": "durgod/k320/base"
},
"durgod/k3x0/k320": {
"target": "durgod/k320/base"
},
"durgod/hades": {
"target": "durgod/dgk6x/hades_ansi"
@@ -166,9 +179,18 @@
"dztech/volcano660": {
"target": "ilumkb/volcano660"
},
"dztech/og60": {
"target": "dztech/tofu60"
},
"eek": {
"target": "eek/silk_down"
},
"epoch80": {
"target": "kbdfans/epoch80"
},
"era/klein": {
"target": "era/sirind/klein_sd"
},
"ergodone": {
"target": "ktec/ergodone"
},
@@ -199,6 +221,9 @@
"handwired/dactyl_manuform/6x6_kinesis": {
"target": "handwired/dactyl_kinesis"
},
"handwired/dactyl_manuform/dmote/62key": {
"target": "handwired/dmote"
},
"handwired/ferris": {
"target": "ferris/0_1"
},
@@ -265,11 +290,17 @@
"honeycomb": {
"target": "keyhive/honeycomb"
},
"hub16": {
"target": "joshajohnson/hub16"
},
"hub20": {
"target": "joshajohnson/hub20"
},
"idb_60": {
"target": "idb/idb_60"
},
"idobo": {
"target": "idobao/id75"
"target": "idobao/id75/v1"
},
"jacky_studio/piggy60": {
"target": "jacky_studio/piggy60/rev1"
@@ -283,6 +314,9 @@
"jj50": {
"target": "kprepublic/jj50"
},
"jm60": {
"target": "kbdfans/jm60"
},
"jones": {
"target": "jones/v03_1"
},
@@ -307,12 +341,48 @@
"keycapsss/plaid_pad": {
"target": "keycapsss/plaid_pad/rev1"
},
"kira75": {
"target": "kira/kira75"
},
"kira80": {
"target": "kira/kira80"
},
"kudox": {
"target": "kudox/rev1"
"target": "kumaokobo/kudox/rev1"
},
"kudox/columner": {
"target": "kumaokobo/kudox/columner"
},
"kudox/rev1": {
"target": "kumaokobo/kudox/rev1"
},
"kudox/rev2": {
"target": "kumaokobo/kudox/rev2"
},
"kudox/rev3": {
"target": "kumaokobo/kudox/rev3"
},
"kudox_full": {
"target": "kumaokobo/kudox_full/rev1"
},
"kudox_full/rev1": {
"target": "kumaokobo/kudox_full/rev1"
},
"kudox_game": {
"target": "kumaokobo/kudox_game/rev1"
},
"kudox_game/rev1": {
"target": "kumaokobo/kudox_game/rev1"
},
"kudox_game/rev2": {
"target": "kumaokobo/kudox_game/rev2"
},
"kyria": {
"target": "splitkb/kyria"
},
"laser_ninja/pumpkin_pad": {
"target": "laser_ninja/pumpkinpad"
},
"lattice60": {
"target": "keyhive/lattice60"
},
@@ -391,6 +461,9 @@
"maartenwut/wonderland": {
"target": "evyd13/wonderland"
},
"matchstickworks/southpad": {
"target": "matchstickworks/southpad/rev2/"
},
"matrix/m12og": {
"target": "matrix/m12og/rev1"
},
@@ -401,7 +474,7 @@
"target": "mechlovin/adelais/rgb_led/rev1"
},
"mechlovin/adelais/standard_led": {
"target": "mechlovin/adelais/standard_led/rev2"
"target": "mechlovin/adelais/standard_led/arm/rev2"
},
"mechlovin/delphine": {
"target": "mechlovin/delphine/mono_led"
@@ -424,6 +497,15 @@
"minim": {
"target": "matthewdias/minim"
},
"mnk1800s": {
"target": "monokei/mnk1800s"
},
"mnk50": {
"target": "monokei/mnk50"
},
"mnk75": {
"target": "monokei/mnk75"
},
"model01": {
"target": "keyboardio/model01"
},
@@ -436,6 +518,9 @@
"montsinger/rebound": {
"target": "montsinger/rebound/rev1"
},
"moonlander": {
"target": "zsa/moonlander"
},
"mschwingen/modelm": {
"target": "ibm/model_m/mschwingen"
},
@@ -455,19 +540,28 @@
"target": "pabile/p20/ver1"
},
"pancake/feather": {
"target": "spaceman/pancake/feather"
"target": "spaceman/pancake/rev1/feather"
},
"pancake/promicro": {
"target": "spaceman/pancake/promicro"
"target": "spaceman/pancake/rev1/promicro"
},
"peiorisboards/ixora": {
"target": "coarse/ixora"
},
"pico": {
"target": "kumaokobo/pico/65keys"
},
"pico/65keys": {
"target": "kumaokobo/pico/65keys"
},
"pico/70keys": {
"target": "kumaokobo/pico/70keys"
},
"plaid": {
"target": "dm9records/plaid"
},
"plain60": {
"target": "maartenwut/plain60"
"target": "evyd13/plain60"
},
"ploopyco/trackball": {
"target": "ploopyco/trackball/rev1_005"
@@ -503,10 +597,13 @@
"target": "wilba_tech/rama_works_u80_a"
},
"ramonimbao/herringbone": {
"target": "ramonimbao/herringbone/v1"
"target": "rmi_kb/herringbone/v1"
},
"ramonimbao/mona": {
"target": "ramonimbao/mona/v1"
"target": "rmi_kb/mona/v1"
},
"redox_w": {
"target": "redox/wireless"
},
"rgbkb/pan": {
"target": "rgbkb/pan/rev1/32a"
@@ -542,10 +639,10 @@
"target": "tkw/stoutgat/v1"
},
"suihankey": {
"target": "suihankey/split/alpha"
"target": "kakunpc/suihankey/split/alpha"
},
"ta65": {
"target": "maartenwut/ta65"
"target": "evyd13/ta65"
},
"tartan": {
"target": "dm9records/tartan"
@@ -563,13 +660,13 @@
"target": "matthewdias/txuu"
},
"underscore33": {
"target": "underscore33/rev1"
"target": "tominabox1/underscore33/rev1"
},
"vinta": {
"target": "coarse/vinta"
},
"wasdat": {
"target": "maartenwut/wasdat"
"target": "evyd13/wasdat"
},
"westfoxtrot/cypher": {
"target": "westfoxtrot/cypher/rev1"
@@ -581,10 +678,10 @@
"target": "xiudi/xd002"
},
"xd004": {
"target": "xiudi/xd004"
"target": "xiudi/xd004/v1"
},
"xd60": {
"target": "xiudi/xd60"
"target": "xiudi/xd60/rev2"
},
"xd68": {
"target": "xiudi/xd68"
@@ -776,6 +873,12 @@
"eggman": {
"target": "qpockets/eggman"
},
"enter67": {
"target": "kezewa/enter67"
},
"enter80": {
"target": "kezewa/enter80"
},
"ergo42": {
"target": "biacco42/ergo42"
},
@@ -797,9 +900,15 @@
"espectro": {
"target": "mechkeys/espectro"
},
"eu_isolation": {
"target": "p3d/eu_isolation"
},
"felix": {
"target": "unikeyboard/felix"
},
"flygone60/rev3": {
"target": "shandoncodes/flygone60/rev3"
},
"four_banger": {
"target": "bpiphany/four_banger"
},
@@ -831,7 +940,7 @@
"target": "kagizaraya/halberd"
},
"handwired/hillside/0_1": {
"target": "handwired/hillside/48"
"target": "hillside/48/0_1"
},
"hecomi/alpha": {
"target": "takashiski/hecomi/alpha"
@@ -843,10 +952,10 @@
"target": "bpiphany/hid_liber"
},
"id67/default_rgb": {
"target": "idobao/id67/default_rgb"
"target": "idobao/id67"
},
"id67/rgb": {
"target": "idobao/id67/rgb"
"target": "idobao/id67"
},
"id80": {
"target": "idobao/id80/v2/ansi"
@@ -884,12 +993,33 @@
"kelowna/rgb64": {
"target": "weirdo/kelowna/rgb64"
},
"keychron/q0": {
"target": "keychron/q0/base"
},
"keychron/q1": {
"target": "keychron/q1v1/ansi"
}
"keychron/q4": {
"target": "keychron/q4/ansi/v1"
}
"kmac": {
"target": "kbdmania/kmac"
}
"kmac_pad": {
"target": "kbdmania/kmac_pad"
}
"kprepublic/bm40hsrgb": {
"target": "kprepublic/bm40hsrgb/rev1"
},
"kprepublic/bm65hsrgb_iso": {
"target": "kprepublic/bm65hsrgb_iso/rev1"
},
"kprepublic/bm68hsrgb": {
"target": "kprepublic/bm68hsrgb/rev1"
},
"late9/rev1": {
"target": "rookiebwoy/late9/rev1"
},
"latin17rgb": {
"target": "latincompass/latin17rgb"
},
@@ -914,6 +1044,12 @@
"launchpad/rev1": {
"target": "maple_computing/launchpad/rev1"
},
"lefty": {
"target": "smoll/lefty/rev2"
},
"lefty/rev1": {
"target": "smoll/lefty/rev1"
},
"lck75": {
"target": "lyso1/lck75"
},
@@ -929,9 +1065,21 @@
"ls_60": {
"target": "weirdo/ls_60"
},
"lpad": {
"target": "laneware/lpad"
},
"lw67": {
"target": "laneware/lw67"
},
"lw75": {
"target": "laneware/lw75"
},
"m3n3van": {
"target": "matthewdias/m3n3van"
},
"macro1": {
"target": "laneware/macro1"
},
"massdrop/thekey": {
"target": "drop/thekey/v1"
},
@@ -956,9 +1104,21 @@
"melody96": {
"target": "ymdk/melody96"
},
"miniaxe": {
"target": "kagizaraya/miniaxe"
},
"minidox/rev1": {
"target": "maple_computing/minidox/rev1"
},
"mino/hotswap": {
"target": "shandoncodes/mino/hotswap"
},
"mino_plus/hotswap": {
"target": "shandoncodes/mino_plus/hotswap"
},
"mino_plus/soldered": {
"target": "shandoncodes/mino_plus/soldered"
},
"mio": {
"target": "recompile_keys/mio"
},
@@ -1013,6 +1173,9 @@
"nebula68b": {
"target": "spaceholdings/nebula68b"
},
"neopad/rev1": {
"target": "rookiebwoy/neopad/rev1"
},
"niu_mini": {
"target": "kbdfans/niu_mini"
},
@@ -1067,6 +1230,12 @@
"pursuit40": {
"target": "checkerboards/pursuit40"
},
"pw88": {
"target": "smoll/pw88"
},
"q4z": {
"target": "p3d/q4z"
},
"qaz": {
"target": "tominabox1/qaz"
},
@@ -1076,6 +1245,9 @@
"rabbit_capture_plan": {
"target": "kakunpc/rabbit_capture_plan"
},
"raindrop": {
"target": "laneware/raindrop"
},
"ramonimbao/aelith": {
"target": "rmi_kb/aelith"
},
@@ -1142,6 +1314,9 @@
"reviung61": {
"target": "reviung/reviung61"
},
"riot_pad": {
"target": "shandoncodes/riot_pad"
},
"runner3680/3x6": {
"target": "omkbd/runner3680/3x6"
},
@@ -1184,12 +1359,21 @@
"setta21": {
"target": "salicylic_acid3/setta21"
},
"soda/mango": {
"target": "magic_force/mf17"
},
"soda/pocket": {
"target": "magic_force/mf34"
},
"space_space/rev1": {
"target": "qpockets/space_space/rev1"
},
"space_space/rev2": {
"target": "qpockets/space_space/rev2"
},
"spacey": {
"target": "p3d/spacey"
},
"spiderisland/winry25tc": {
"target": "winry/winry25tc"
},
@@ -1208,6 +1392,9 @@
"stella": {
"target": "hnahkb/stella"
},
"studiokestra/line_tkl": {
"target": "studiokestra/line_friends_tkl"
},
"suihankey/alpha": {
"target": "kakunpc/suihankey/alpha"
},
@@ -1217,6 +1404,9 @@
"suihankey/split": {
"target": "kakunpc/suihankey/split"
},
"synapse": {
"target": "p3d/synapse"
},
"the_ruler": {
"target": "maple_computing/the_ruler"
},
@@ -1236,7 +1426,10 @@
"target": "marksard/treadstone48/rev2"
},
"tronguylabs/m122_3270": {
"target": "ibm/model_m_122/m122_3270"
"target": "ibm/model_m_122/m122_3270/teensy"
},
"tw40": {
"target": "p3d/tw40"
},
"ua62": {
"target": "nacly/ua62"
@@ -1256,6 +1449,9 @@
"vn66": {
"target": "hnahkb/vn66"
},
"w1_at": {
"target": "geonworks/w1_at"
},
"wallaby": {
"target": "kkatano/wallaby"
},
@@ -1290,7 +1486,7 @@
"target": "ydkb/yd68"
},
"ymd75": {
"target": "ymdk/ymd75"
"target": "ymdk/ymd75/rev1"
},
"ymd96": {
"target": "ymdk/ymd96"
@@ -1304,6 +1500,12 @@
"yurei": {
"target": "kkatano/yurei"
},
"z12": {
"target": "zigotica/z12"
},
"z34": {
"target": "zigotica/z34"
},
"zinc": {
"target": "25keys/zinc"
},
@@ -1312,5 +1514,9 @@
},
"zinc/reva": {
"target": "25keys/zinc/reva"
},
// Moved during 2023 Q4 cycle
"ymdk/melody96": {
"target": "ymdk/melody96/soldered"
}
}

View File

@@ -3,10 +3,25 @@
"$id": "qmk.definitions.v1",
"title": "Common definitions used across QMK's jsonschemas.",
"type": "object",
"bcd_version": {
"type": "string",
"pattern": "^[0-9]{1,2}\\.[0-9]\\.[0-9]$"
},
"bit": {
"type": "integer",
"minimum": 0,
"maximum": 1
},
"boolean_array": {
"type": "object",
"additionalProperties": {"type": "boolean"}
},
"build_target": {
"oneOf": [
{"$ref": "#/keyboard_keymap_tuple"},
{"$ref": "#/json_file_path"}
]
},
"filename": {
"type": "string",
"minLength": 1,
@@ -20,14 +35,56 @@
"type": "string",
"pattern": "^0x[0-9A-F]{4}$"
},
"bcd_version": {
"json_file_path": {
"type": "string",
"pattern": "^[0-9]{1,2}\\.[0-9]\\.[0-9]$"
"pattern": "^[0-9a-z_/\\-]+\\.json$"
},
"text_identifier": {
"key_unit": {
"type": "number"
},
"keyboard": {
"type": "string",
"minLength": 1,
"maxLength": 250
"pattern": "^[0-9a-z][0-9a-z_/]*$"
},
"keyboard_keymap_tuple": {
"type": "array",
"prefixItems": [
{"$ref": "#/keyboard"},
{"$ref": "#/filename"}
],
"unevaluatedItems": false
},
"keycode": {
"type": "string",
"minLength": 2,
"maxLength": 50,
"pattern": "^[A-Z][A-Zs_0-9]*$"
},
"keycode_decl": {
"type": "object",
"required": [
"key"
],
"properties": {
"key": {"$ref": "#/keycode"},
"label": {"$ref": "#/text_identifier"},
"aliases": {
"type": "array",
"minItems": 1,
"items": {"$ref": "#/keycode_short"}
}
}
},
"keycode_decl_array": {
"type": "array",
"minItems": 1,
"items": {"$ref": "#/keycode_decl"}
},
"keycode_short": {
"type": "string",
"minLength": 2,
"maxLength": 7,
"pattern": "^[A-Z][A-Zs_0-9]*$"
},
"layout_macro": {
"oneOf": [
@@ -64,49 +121,6 @@
}
]
},
"key_unit": {
"type": "number"
},
"keyboard": {
"type": "string",
"pattern": "^[0-9a-z][0-9a-z_/]*$"
},
"keycode": {
"type": "string",
"minLength": 2,
"maxLength": 50,
"pattern": "^[A-Z][A-Zs_0-9]*$"
},
"keycode_short": {
"type": "string",
"minLength": 2,
"maxLength": 7,
"pattern": "^[A-Z][A-Zs_0-9]*$"
},
"keycode_decl": {
"type": "object",
"required": [
"key"
],
"properties": {
"key": {"$ref": "#/keycode"},
"label": {"$ref": "#/text_identifier"},
"aliases": {
"type": "array",
"minItems": 1,
"items": {"$ref": "#/keycode_short"}
}
}
},
"keycode_decl_array": {
"type": "array",
"minItems": 1
"items": {"$ref": "#/keycode_decl"}
},
"mcu_pin_array": {
"type": "array",
"items": {"$ref": "#/mcu_pin"}
},
"mcu_pin": {
"oneOf": [
{
@@ -125,14 +139,14 @@
"type": "string",
"pattern": "^GP\\d{1,2}$"
},
{
"type": "integer"
},
{
"type": "null"
}
{"type": "integer"},
{"type": "null"}
]
},
"mcu_pin_array": {
"type": "array",
"items": {"$ref": "#/mcu_pin"}
},
"signed_decimal": {
"type": "number"
},
@@ -144,17 +158,22 @@
"minimum": -127,
"maximum": 127
},
"snake_case": {
"type": "string",
"pattern": "^[a-z][a-z0-9_]*$"
},
"string_array": {
"type": "array",
"items": {
"type": "string"
}
"items": {"type": "string"}
},
"string_object": {
"type": "object",
"additionalProperties": {
"type": "string"
}
"additionalProperties": {"type": "string"}
},
"text_identifier": {
"type": "string",
"minLength": 1,
"maxLength": 250
},
"unsigned_decimal": {
"type": "number",
@@ -168,10 +187,5 @@
"type": "integer",
"minimum": 0,
"maximum": 255
},
"bit": {
"type": "integer",
"minimum": 0,
"maximum": 1
}
}

View File

@@ -6,6 +6,10 @@
"encoder_config": {
"type": "object",
"properties": {
"driver": {
"type": "string",
"enum": ["custom", "quadrature"]
},
"rotary": {
"type": "array",
"items": {
@@ -20,10 +24,16 @@
}
}
}
},
"dip_switch_config": {
"type": "object",
"properties": {
"pins": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
}
}
},
"type": "object",
"not": { "required": [ "vendorId", "productId" ] }, // reject via keys...
"not": {"required": ["vendorId", "productId"]}, // reject via keys...
"properties": {
"keyboard_name": {"$ref": "qmk.definitions.v1#/text_identifier"},
"keyboard_folder": {"$ref": "qmk.definitions.v1#/keyboard"},
@@ -35,7 +45,7 @@
},
"development_board": {
"type": "string",
"enum": ["promicro", "elite_c", "elite_pi", "proton_c", "kb2040", "promicro_rp2040", "blok", "michi", "bit_c_pro", "stemcell", "bluepill", "blackpill_f401", "blackpill_f411", "bonsai_c4", "helios", "liatris"]
"enum": ["promicro", "elite_c", "elite_pi", "proton_c", "kb2040", "promicro_rp2040", "blok", "michi", "bit_c_pro", "stemcell", "bluepill", "blackpill_f401", "blackpill_f411", "bonsai_c4", "helios", "liatris", "imera"]
},
"pin_compatible": {
"type": "string",
@@ -115,6 +125,14 @@
"type": "object",
"additionalProperties": false,
"properties": {
"default": {
"type": "object",
"additionalProperties": false,
"properties": {
"on": {"type": "boolean"},
"clicky": {"type": "boolean"}
}
},
"macro_beep": {"type": "boolean"},
"pins": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
"voices": {"type": "boolean"}
@@ -126,7 +144,16 @@
"properties": {
"driver": {
"type": "string",
"enum": ["pwm", "software", "timer", "custom"]
"enum": ["custom", "pwm", "software", "timer"]
},
"default": {
"type": "object",
"additionalProperties": false,
"properties": {
"on": {"type": "boolean"},
"breathing": {"type": "boolean"},
"brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
}
},
"breathing": {"type": "boolean"},
"breathing_period": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
@@ -245,9 +272,40 @@
"type": "array",
"items": {"$ref": "qmk.definitions.v1#/filename"}
},
"dip_switch": {
"$ref": "#/definitions/dip_switch_config",
"properties": {
"enabled": {"type": "boolean"},
"matrix_grid": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "integer",
"minimum": 0
}
}
}
}
},
"eeprom": {
"properties": {
"driver": {"type": "string"}
"driver": {"type": "string"},
"wear_leveling": {
"type": "object",
"additionalProperties": false,
"properties": {
"driver": {
"type": "string",
"enum": ["custom", "embedded_flash", "legacy", "rp2040_flash", "spi_flash"]
},
"backing_size": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"logical_size": {"$ref": "qmk.definitions.v1#/unsigned_int"}
}
}
}
},
"encoder": {
@@ -256,7 +314,11 @@
"enabled": {"type": "boolean"}
}
},
"features": {"$ref": "qmk.definitions.v1#/boolean_array"},
"features": {
"$ref": "qmk.definitions.v1#/boolean_array",
"propertyNames": {"$ref": "qmk.definitions.v1#/snake_case"},
"not": {"required": ["lto"]}
},
"indicators": {
"type": "object",
"properties": {
@@ -280,15 +342,9 @@
"type": "object",
"additionalProperties": false,
"properties": {
"filename": {
"type": "string"
},
"c_macro": {
"type": "boolean"
},
"json_layout": {
"type": "boolean"
},
"filename": {"type": "string"},
"c_macro": {"type": "boolean"},
"json_layout": {"type": "boolean"},
"layout": {
"type": "array",
"items": {
@@ -296,6 +352,7 @@
"additionalProperties": false,
"required": ["x", "y"],
"properties": {
"encoder": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"label": {
"type": "string",
"pattern": "^[^\\n]*$"
@@ -370,11 +427,37 @@
"properties": {
"animations": {
"type": "object",
"additionalProperties": {
"type": "boolean"
"propertyNames": {"$ref": "qmk.definitions.v1#/snake_case"},
"additionalProperties": {"type": "boolean"}
},
"default": {
"type": "object",
"additionalProperties": false,
"properties": {
"on": {"type": "boolean"},
"animation": {"type": "string"},
"val": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
}
},
"driver": {"type": "string"},
"driver": {
"type": "string",
"enum": [
"custom",
"is31fl3218",
"is31fl3729",
"is31fl3731",
"is31fl3733",
"is31fl3736",
"is31fl3737",
"is31fl3741",
"is31fl3742a",
"is31fl3743a",
"is31fl3745",
"is31fl3746a",
"snled27351"
]
},
"center_point": {
"type": "array",
"minItems": 2,
@@ -385,6 +468,10 @@
"timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"val_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"speed_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"led_flush_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"led_process_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"react_on_keyup": {"type": "boolean"},
"sleep": {"type": "boolean"},
"split_count": {
"type": "array",
"minItems": 2,
@@ -419,11 +506,41 @@
"properties": {
"animations": {
"type": "object",
"additionalProperties": {
"type": "boolean"
"propertyNames": {"$ref": "qmk.definitions.v1#/snake_case"},
"additionalProperties": {"type": "boolean"}
},
"default": {
"type": "object",
"additionalProperties": false,
"properties": {
"on": {"type": "boolean"},
"animation": {"type": "string"},
"hue": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"sat": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"val": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
}
},
"driver": {"type": "string"},
"driver": {
"type": "string",
"enum": [
"aw20216s",
"custom",
"is31fl3218",
"is31fl3729",
"is31fl3731",
"is31fl3733",
"is31fl3736",
"is31fl3737",
"is31fl3741",
"is31fl3742a",
"is31fl3743a",
"is31fl3745",
"is31fl3746a",
"snled27351",
"ws2812"
]
},
"center_point": {
"type": "array",
"minItems": 2,
@@ -436,6 +553,10 @@
"sat_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"val_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"speed_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"led_flush_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"led_process_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"react_on_keyup": {"type": "boolean"},
"sleep": {"type": "boolean"},
"split_count": {
"type": "array",
"minItems": 2,
@@ -471,11 +592,22 @@
"properties": {
"animations": {
"type": "object",
"additionalProperties": {
"type": "boolean"
}
"propertyNames": {"$ref": "qmk.definitions.v1#/snake_case"},
"additionalProperties": {"type": "boolean"}
},
"brightness_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"default": {
"type": "object",
"additionalProperties": false,
"properties": {
"on": {"type": "boolean"},
"animation": {"type": "string"},
"hue": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"sat": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"val": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
}
},
"driver": {
"type": "string",
"enum": ["apa102", "custom", "ws2812"]
@@ -586,10 +718,6 @@
}
}
},
"matrix_grid": {
"type": "array",
"items": {"$ref": "qmk.definitions.v1#/mcu_pin"}
},
"matrix_pins": {
"type": "object",
"additionalProperties": false,
@@ -609,6 +737,15 @@
}
}
},
"dip_switch": {
"type": "object",
"additionalProperties": false,
"properties": {
"right": {
"$ref": "#/definitions/dip_switch_config"
}
}
},
"encoder": {
"type": "object",
"additionalProperties": false,
@@ -618,9 +755,17 @@
}
}
},
"main": {
"type": "string",
"enum": ["eeprom", "left", "matrix_grid", "pin", "right"]
"handedness": {
"type": "object",
"additionalProperties": false,
"properties": {
"pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"matrix_grid": {
"$ref": "qmk.definitions.v1#/mcu_pin_array",
"minItems": 2,
"maxItems": 2
}
}
},
"soft_serial_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"soft_serial_speed": {
@@ -636,10 +781,32 @@
"type": "string",
"enum": ["custom", "i2c", "serial", "serial_usart"]
},
"sync_matrix_state": {"type": "boolean"},
"sync_modifiers": {"type": "boolean"},
"sync": {
"type": "object",
"additionalProperties": false,
"properties": {
"activity": {"type": "boolean"},
"detected_os": {"type": "boolean"},
"haptic": {"type": "boolean"},
"layer_state": {"type": "boolean"},
"indicators": {"type": "boolean"},
"matrix_state": {"type": "boolean"},
"modifiers": {"type": "boolean"},
"oled": {"type": "boolean"},
"st7565": {"type": "boolean"},
"wpm": {"type": "boolean"}
}
},
"watchdog": {"type": "boolean"},
"watchdog_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
"watchdog_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"sync_matrix_state": {
"type": "boolean",
"$comment": "Deprecated: use sync.matrix_state instead"
},
"sync_modifiers": {
"type": "boolean",
"$comment": "Deprecated: use sync.modifiers instead"
}
}
},
"usb_detect": {
@@ -650,6 +817,16 @@
"polling_interval": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
}
},
"main": {
"type": "string",
"enum": ["eeprom", "left", "matrix_grid", "pin", "right"],
"$comment": "Deprecated: use config.h options for now"
},
"matrix_grid": {
"type": "array",
"items": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"$comment": "Deprecated: use split.handedness.matrix_grid instead"
}
}
},
@@ -707,7 +884,15 @@
"properties": {
"keys_per_scan": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"tap_keycode_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"tap_capslock_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"}
"tap_capslock_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"locking": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {"type": "boolean"},
"resync": {"type": "boolean"}
}
}
}
},
"qmk_lufa_bootloader": {

View File

@@ -0,0 +1,14 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema#",
"$id": "qmk.user_repo.v0",
"title": "User Repository Information",
"type": "object",
"required": [
"userspace_version"
],
"properties": {
"userspace_version": {
"type": "string",
},
}
}

View File

@@ -0,0 +1,22 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema#",
"$id": "qmk.user_repo.v1",
"title": "User Repository Information",
"type": "object",
"required": [
"userspace_version",
"build_targets"
],
"properties": {
"userspace_version": {
"type": "string",
"enum": ["1.0"]
},
"build_targets": {
"type": "array",
"items": {
"$ref": "qmk.definitions.v1#/build_target"
}
}
}
}

336
docs/ChangeLog/20231126.md Normal file
View File

@@ -0,0 +1,336 @@
# QMK Breaking Changes - 2023 November 26 Changelog
## Notable Features :id=notable-features
As per last few breaking changes cycles, there have been _a lot_ of behind-the-scenes changes, mainly around consolidation of config into `info.json` files, cleanup of `info.json` files, cleaning up driver naming, as well as addressing technical debt.
As a followup to last cycle's [notable changes](20230827.md#notable-changes), as `qmk/qmk_firmware` is no longer accepting PRs for keymaps we're pleased to announce that storing and building keymaps externally from the normal QMK Firmware repository is now possible. This is done through the new [External Userspace](newbs_external_userspace.md) feature, more details below!
## Changes Requiring User Action :id=changes-requiring-user-action
### Updated Keyboard Codebases :id=updated-keyboard-codebases
| Old Keyboard Name | New Keyboard Name |
|---------------------------------------|-------------------------------|
| adm42 | adm42/rev4 |
| dp3000 | dp3000/rev1 |
| handwired/dactyl_manuform/dmote/62key | handwired/dmote |
| keychron/q0/rev_0130 | keychron/q0/base |
| keychron/q0/rev_0131 | keychron/q0/plus |
| keychron/q1/ansi | keychron/q1v1/ansi |
| keychron/q1/ansi_encoder | keychron/q1v1/ansi_encoder |
| keychron/q1/iso | keychron/q1v1/iso |
| keychron/q1/iso_encoder | keychron/q1v1/iso_encoder |
| keychron/q4/ansi_v1 | keychron/q4/ansi |
| kprepublic/bm40hsrgb | kprepublic/bm40hsrgb/rev1 |
| matchstickworks/southpad | matchstickworks/southpad/rev2 |
| soda/mango | magic_force/mf17 |
| soda/pocket | magic_force/mf34 |
| studiokestra/line_tkl | studiokestra/line_friends_tkl |
| ymdk/melody96 | ymdk/melody96/soldered |
## Notable core changes :id=notable-core
### External Userspace ([#22222](https://github.com/qmk/qmk_firmware/pull/22222))
As mentioned above, the new External Userspace feature allows for keymaps to be stored and built externally from the main QMK Firmware repository. This allows for keymaps to be stored separately -- usually in their own repository -- and for users to be able to maintain and build their keymaps without needing to fork the main QMK Firmware repository.
See the [External Userspace documentation](newbs_external_userspace.md) for more details.
A significant portion of user keymaps have already been removed from `qmk/qmk_firmware` and more will follow in coming weeks. You can still recover your keymap from the tag [user-keymaps-still-present](https://github.com/qmk/qmk_firmware/tree/user-keymaps-still-present) if required -- a perfect time to migrate to the new External Userspace!
!> This feature is still in beta, and we're looking for feedback on it. Please try it out and let us know what you think -- a new `#help-userspace` channel has been set up on Discord.
### Improve and Cleanup Shutdown callbacks ([#21060](https://github.com/qmk/qmk_firmware/pull/20160)) :id=improve-and-cleanup-shutdown-callbacks
Shutdown callbacks at the keyboard level were never present, preventing safe shutdown sequencing for peripherals such as OLEDs, RGB LEDs, and other devices. This PR adds a new `shutdown_kb` function, as well as amending `shutdown_user`, allowing for safe shutdown of peripherals at both keyboard and keymap level.
See the [Keyboard Shutdown/Reboot Code](custom_quantum_functions.md#keyboard-shutdown-reboot-code) documentation for more details.
### OLED Force Flush ([#20953](https://github.com/qmk/qmk_firmware/pull/20953)) :id=oled-force-flush
Along with the new `shutdown_kb` function, a new API `oled_render_dirty(bool)` function has been added. This allows OLED contents to be written deterministically when supplied with `true` -- that is, the OLED will be updated immediately, rather than waiting for the next OLED update cycle. This allows for OLEDs to show things such as "BOOTLOADER MODE" and the like if resetting to bootloader from QMK.
### Switch statement helpers for keycode ranges ([#20059](https://github.com/qmk/qmk_firmware/pull/20059)) :id=switch-statement-helpers-for-keycode-ranges
Predefined ranges usable within switch statements have been added for groups of similar keycodes, where people who wish to handle entire blocks at once can do so. This allows keymaps to be immune to changes in keycode values, and also allows for more efficient code generation.
The ranges are as follows:
| Name | Mapping |
|-------------------------------------|------------------------------------------------------------------------|
| `INTERNAL_KEYCODE_RANGE` | `KC_NO ... KC_TRANSPARENT` |
| `BASIC_KEYCODE_RANGE` | `KC_A ... KC_EXSEL` |
| `SYSTEM_KEYCODE_RANGE` | `KC_SYSTEM_POWER ... KC_SYSTEM_WAKE` |
| `CONSUMER_KEYCODE_RANGE` | `KC_AUDIO_MUTE ... KC_LAUNCHPAD` |
| `MOUSE_KEYCODE_RANGE` | `KC_MS_UP ... KC_MS_ACCEL2` |
| `MODIFIER_KEYCODE_RANGE` | `KC_LEFT_CTRL ... KC_RIGHT_GUI` |
| `SWAP_HANDS_KEYCODE_RANGE` | `QK_SWAP_HANDS_TOGGLE ... QK_SWAP_HANDS_ONE_SHOT` |
| `MAGIC_KEYCODE_RANGE` | `QK_MAGIC_SWAP_CONTROL_CAPS_LOCK ... QK_MAGIC_TOGGLE_ESCAPE_CAPS_LOCK` |
| `MIDI_KEYCODE_RANGE` | `QK_MIDI_ON ... QK_MIDI_PITCH_BEND_UP` |
| `SEQUENCER_KEYCODE_RANGE` | `QK_SEQUENCER_ON ... QK_SEQUENCER_STEPS_CLEAR` |
| `JOYSTICK_KEYCODE_RANGE` | `QK_JOYSTICK_BUTTON_0 ... QK_JOYSTICK_BUTTON_31` |
| `PROGRAMMABLE_BUTTON_KEYCODE_RANGE` | `QK_PROGRAMMABLE_BUTTON_1 ... QK_PROGRAMMABLE_BUTTON_32` |
| `AUDIO_KEYCODE_RANGE` | `QK_AUDIO_ON ... QK_AUDIO_VOICE_PREVIOUS` |
| `STENO_KEYCODE_RANGE` | `QK_STENO_BOLT ... QK_STENO_COMB_MAX` |
| `MACRO_KEYCODE_RANGE` | `QK_MACRO_0 ... QK_MACRO_31` |
| `BACKLIGHT_KEYCODE_RANGE` | `QK_BACKLIGHT_ON ... QK_BACKLIGHT_TOGGLE_BREATHING` |
| `RGB_KEYCODE_RANGE` | `RGB_TOG ... RGB_MODE_TWINKLE` |
| `QUANTUM_KEYCODE_RANGE` | `QK_BOOTLOADER ... QK_ALT_REPEAT_KEY` |
| `KB_KEYCODE_RANGE` | `QK_KB_0 ... QK_KB_31` |
| `USER_KEYCODE_RANGE` | `QK_USER_0 ... QK_USER_31` |
Usage:
```c
switch (keycode) {
case KC_A ... KC_EXSEL:
case KC_LEFT_CTRL ... KC_RIGHT_GUI:
/* do stuff with basic and modifier keycodes */
```
Becomes:
```c
switch (keycode) {
case BASIC_KEYCODE_RANGE:
case MODIFIER_KEYCODE_RANGE:
/* do stuff with basic and modifier keycodes */
```
### Quantum Painter OLED support ([#19997](https://github.com/qmk/qmk_firmware/pull/19997)) :id=quantum-painter-oled-support
Quantum Painter has picked up support for SH1106 displays -- commonly seen as 128x64 OLEDs. Support for both I2C and SPI displays is available.
If you're already using OLED through `OLED_DRIVER_ENABLE = yes` or equivalent in `info.json` and wish to use Quantum Painter instead, you'll need to disable the old OLED system, instead enabling Quantum Painter as well as enabling the appropriate SH1106 driver. See the [Quantum Painter driver documentation](quantum_painter.md#quantum-painter-drivers) for more details. The old OLED driver is still available, and keymaps do not require migrating to Quantum Painter if you don't want to do so.
### RGB/LED lighting driver naming and cleanup ([#21890](https://github.com/qmk/qmk_firmware/pull/21890), [#21891](https://github.com/qmk/qmk_firmware/pull/21891), [#21892](https://github.com/qmk/qmk_firmware/pull/21892), [#21903](https://github.com/qmk/qmk_firmware/pull/21903), [#21904](https://github.com/qmk/qmk_firmware/pull/21904), [#21905](https://github.com/qmk/qmk_firmware/pull/21905), [#21918](https://github.com/qmk/qmk_firmware/pull/21918), [#21929](https://github.com/qmk/qmk_firmware/pull/21929), [#21938](https://github.com/qmk/qmk_firmware/pull/21938), [#22004](https://github.com/qmk/qmk_firmware/pull/22004), [#22008](https://github.com/qmk/qmk_firmware/pull/22008), [#22009](https://github.com/qmk/qmk_firmware/pull/22009), [#22071](https://github.com/qmk/qmk_firmware/pull/22071), [#22090](https://github.com/qmk/qmk_firmware/pull/22090), [#22099](https://github.com/qmk/qmk_firmware/pull/22099), [#22126](https://github.com/qmk/qmk_firmware/pull/22126), [#22133](https://github.com/qmk/qmk_firmware/pull/22133), [#22163](https://github.com/qmk/qmk_firmware/pull/22163), [#22200](https://github.com/qmk/qmk_firmware/pull/22200), [#22308](https://github.com/qmk/qmk_firmware/pull/22308), [#22309](https://github.com/qmk/qmk_firmware/pull/22309), [#22311](https://github.com/qmk/qmk_firmware/pull/22311), [#22325](https://github.com/qmk/qmk_firmware/pull/22325), [#22365](https://github.com/qmk/qmk_firmware/pull/22365), [#22379](https://github.com/qmk/qmk_firmware/pull/22379), [#22380](https://github.com/qmk/qmk_firmware/pull/22380), [#22381](https://github.com/qmk/qmk_firmware/pull/22381), [#22383](https://github.com/qmk/qmk_firmware/pull/22383), [#22436](https://github.com/qmk/qmk_firmware/pull/22436))
As you can probably tell by the list of PRs just above, there has been a lot of cleanup and consolidation this cycle when it comes to RGB/LED lighting drivers. The number of changes is too large to list here, but the general theme has been focusing on consistency of naming, both of drivers themselves and their respective implementation and configuration. Most changes only affect keyboard designers -- if you find that your in-development keyboard is no longer building due to naming of defines changing, your best bet is to refer to another board already in the repository which has had the changes applied.
### Peripheral subsystem enabling ([#22253](https://github.com/qmk/qmk_firmware/pull/22253), [#22448](https://github.com/qmk/qmk_firmware/pull/22448), [#22106](https://github.com/qmk/qmk_firmware/pull/22106)) :id=peripheral-subsystem-enabling
When enabling peripherals such as I2C, SPI, or Analog/ADC, some required manual inclusion of source files in order to provide driver support, and in some cases, when multiple drivers were using the same underlying peripheral, files were being added to the build multiple times.
Most systems requiring other peripherals now mark their respective dependencies as "required", allowing the build system to check whether peripherals are necessary before including them in the build rather than having each location enable them manually.
For a concrete example, users or keyboard designers who previously added `SRC += analog.c` in order to allow for analog readings via an ADC now should specify `ANALOG_DRIVER_REQUIRED = yes` instead. The full list of added options is as follows:
| New option | Old Equivalent |
|--------------------------------|------------------------------------------------------------|
| `ANALOG_DRIVER_REQUIRED = yes` | `SRC += analog.c` |
| `APA102_DRIVER_REQUIRED = yes` | `SRC += apa102.c` |
| `I2C_DRIVER_REQUIRED = yes` | `SRC += i2c_master.c` or `QUANTUM_LIB_SRC += i2c_master.c` |
| `SPI_DRIVER_REQUIRED = yes` | `SRC += spi_master.c` or `QUANTUM_LIB_SRC += spi_master.c` |
| `UART_DRIVER_REQUIRED = yes` | `SRC += uart.c` |
| `WS2812_DRIVER_REQUIRED = yes` | `SRC += ws2812.c` |
### NKRO on V-USB boards ([#22398](https://github.com/qmk/qmk_firmware/pull/22398)) :id=vusb-nkro
NKRO is now available for ATmega32A and 328P-based keyboards (including PS2AVRGB/Bootmapper boards), thanks to some internal refactoring and cleanup. To enable it, the process is the same as always - add `NKRO_ENABLE = yes` to your `rules.mk`, then assign and press the `NK_TOGG` keycode to switch modes.
## Full changelist :id=full-changelist
Core:
* Compilation warning if both `keymap.json` and `keymap.c` exist ([#19939](https://github.com/qmk/qmk_firmware/pull/19939))
* [QP] Add support for OLED, variable framebuffer bpp ([#19997](https://github.com/qmk/qmk_firmware/pull/19997))
* Generate switch statement helpers for keycode ranges ([#20059](https://github.com/qmk/qmk_firmware/pull/20059))
* Chibios SPI driver: allow some SPI pins to be left unassigned ([#20315](https://github.com/qmk/qmk_firmware/pull/20315))
* Take care of scroll divisor remainders for PS/2 drag scroll ([#20732](https://github.com/qmk/qmk_firmware/pull/20732))
* Add `RGBLIGHT_DEFAULT_ON` macro configuration option ([#20857](https://github.com/qmk/qmk_firmware/pull/20857))
* Allow force flush of oled display. ([#20953](https://github.com/qmk/qmk_firmware/pull/20953))
* Improve and Cleanup Shutdown callbacks ([#21060](https://github.com/qmk/qmk_firmware/pull/21060))
* [Enhancement] QP Getters ([#21171](https://github.com/qmk/qmk_firmware/pull/21171))
* Russian typewriter keymap file for popular legacy layout. ([#21174](https://github.com/qmk/qmk_firmware/pull/21174))
* Improve directional transition of overlapping mouse keys ([#21494](https://github.com/qmk/qmk_firmware/pull/21494))
* Add full solenoid support on split keyboards ([#21583](https://github.com/qmk/qmk_firmware/pull/21583))
* Reduce popping during audio initialization using the additive DAC ([#21642](https://github.com/qmk/qmk_firmware/pull/21642))
* [Maintenance] USB HID control packet as struct ([#21688](https://github.com/qmk/qmk_firmware/pull/21688))
* Bump mouse endpoint packet size to 16 bytes ([#21711](https://github.com/qmk/qmk_firmware/pull/21711))
* Allow customizing PWM frequency ([#21717](https://github.com/qmk/qmk_firmware/pull/21717))
* Add simpler method for relocating functions to RAM. ([#21804](https://github.com/qmk/qmk_firmware/pull/21804))
* Clean up RGB LED type ([#21859](https://github.com/qmk/qmk_firmware/pull/21859))
* is31fl3741: Allow changing config register ([#21861](https://github.com/qmk/qmk_firmware/pull/21861))
* Add _DEFAULT_ON lighting configuration options ([#21865](https://github.com/qmk/qmk_firmware/pull/21865))
* Modify split config is_keyboard_master/left checks. ([#21875](https://github.com/qmk/qmk_firmware/pull/21875))
* Remove old `IS_LED_ON/OFF()` macros ([#21878](https://github.com/qmk/qmk_firmware/pull/21878))
* ckled2001: driver naming cleanups ([#21890](https://github.com/qmk/qmk_firmware/pull/21890))
* aw20216: driver naming cleanups ([#21891](https://github.com/qmk/qmk_firmware/pull/21891))
* is31fl3218: driver naming cleanups ([#21892](https://github.com/qmk/qmk_firmware/pull/21892))
* is31fl3736: driver naming cleanups ([#21903](https://github.com/qmk/qmk_firmware/pull/21903))
* is31fl3737: driver naming cleanups ([#21904](https://github.com/qmk/qmk_firmware/pull/21904))
* is31fl3733: driver naming cleanups ([#21905](https://github.com/qmk/qmk_firmware/pull/21905))
* Enable RP2040 support for apa102 RGB LED driver ([#21908](https://github.com/qmk/qmk_firmware/pull/21908))
* is31fl3731: driver naming cleanups ([#21918](https://github.com/qmk/qmk_firmware/pull/21918))
* is31fl3741: driver naming cleanups ([#21929](https://github.com/qmk/qmk_firmware/pull/21929))
* refactor: move default RGB/LED matrix #defines ([#21938](https://github.com/qmk/qmk_firmware/pull/21938))
* Added flower blooming on RGB Matrix effect ([#21948](https://github.com/qmk/qmk_firmware/pull/21948))
* Remove 'Firmware size check does not yet support' message ([#21977](https://github.com/qmk/qmk_firmware/pull/21977))
* chibios: mark boot2 bootlader data readonly ([#21986](https://github.com/qmk/qmk_firmware/pull/21986))
* Complete RGB Matrix support for IS31FL3218 ([#22004](https://github.com/qmk/qmk_firmware/pull/22004))
* Default wear leveling logical size to half backing ([#22006](https://github.com/qmk/qmk_firmware/pull/22006))
* chibios: disable RWX segment warning on newer GNU lds ([#22007](https://github.com/qmk/qmk_firmware/pull/22007))
* Add and use I2C address defines for ISSI LED drivers ([#22008](https://github.com/qmk/qmk_firmware/pull/22008))
* Add and use PWM frequency defines for ISSI LED drivers ([#22009](https://github.com/qmk/qmk_firmware/pull/22009))
* directly use object files when linking ELF ([#22025](https://github.com/qmk/qmk_firmware/pull/22025))
* Lvgl rate control ([#22049](https://github.com/qmk/qmk_firmware/pull/22049))
* Rename CKLED2001 driver to SNLED27351 ([#22071](https://github.com/qmk/qmk_firmware/pull/22071))
* Move `PACKED` define to util.h ([#22074](https://github.com/qmk/qmk_firmware/pull/22074))
* Simplify more feature driver defines ([#22090](https://github.com/qmk/qmk_firmware/pull/22090))
* Update ISSI LED types ([#22099](https://github.com/qmk/qmk_firmware/pull/22099))
* Move velocikey to within rgblight ([#22123](https://github.com/qmk/qmk_firmware/pull/22123))
* is31fl3218: Add LED Matrix support ([#22126](https://github.com/qmk/qmk_firmware/pull/22126))
* Set default board files for uf2boot bootloader ([#22129](https://github.com/qmk/qmk_firmware/pull/22129))
* is31fl3736: extract single-color API ([#22133](https://github.com/qmk/qmk_firmware/pull/22133))
* is31fl3737/3741: add LED Matrix support ([#22163](https://github.com/qmk/qmk_firmware/pull/22163))
* Rename `DRIVER_ADDR_n` defines ([#22200](https://github.com/qmk/qmk_firmware/pull/22200))
* New RGB Animations - 4 "Starlight" Animation Variations ([#22212](https://github.com/qmk/qmk_firmware/pull/22212))
* QMK Userspace ([#22222](https://github.com/qmk/qmk_firmware/pull/22222))
* Dedupe I2C, SPI, UART driver inclusions ([#22253](https://github.com/qmk/qmk_firmware/pull/22253))
* Add "AC Next Keyboard Layout Select" consumer usage entry (macOS Globe key) ([#22256](https://github.com/qmk/qmk_firmware/pull/22256))
* Separate 6KRO and NKRO report structs ([#22267](https://github.com/qmk/qmk_firmware/pull/22267))
* Azoteq IQS5xx support ([#22280](https://github.com/qmk/qmk_firmware/pull/22280))
* Add `_flush()` functions to LED drivers ([#22308](https://github.com/qmk/qmk_firmware/pull/22308))
* Add `_LED_COUNT` defines to LED drivers ([#22309](https://github.com/qmk/qmk_firmware/pull/22309))
* Infer LED DRIVER_COUNT from configured addresses ([#22311](https://github.com/qmk/qmk_firmware/pull/22311))
* Added gamma values for ST7735 displays ([#22313](https://github.com/qmk/qmk_firmware/pull/22313))
* Consolidate some EEPROM Driver configuration ([#22321](https://github.com/qmk/qmk_firmware/pull/22321))
* V-USB: Add generic `send_report()` function ([#22323](https://github.com/qmk/qmk_firmware/pull/22323))
* V-USB: Implement `GET_PROTOCOL` and `SET_PROTOCOL` handling ([#22324](https://github.com/qmk/qmk_firmware/pull/22324))
* RGB/LED matrix use limits size optimisation ([#22325](https://github.com/qmk/qmk_firmware/pull/22325))
* Relocate LED driver init code ([#22365](https://github.com/qmk/qmk_firmware/pull/22365))
* WT RGB cleanups ([#22379](https://github.com/qmk/qmk_firmware/pull/22379))
* LED drivers: use `PACKED` define from util.h ([#22380](https://github.com/qmk/qmk_firmware/pull/22380))
* LED drivers: clean up `SWx`/`CSy` pullup/down resistor config ([#22381](https://github.com/qmk/qmk_firmware/pull/22381))
* LED drivers: add defines for PWM and LED control register counts ([#22383](https://github.com/qmk/qmk_firmware/pull/22383))
* V-USB: implement NKRO ([#22398](https://github.com/qmk/qmk_firmware/pull/22398))
* Allow generic_features to handle subdirectories ([#22400](https://github.com/qmk/qmk_firmware/pull/22400))
* Migrate some common features to generic ([#22403](https://github.com/qmk/qmk_firmware/pull/22403))
* Remove requirement for `keymap_steno.h` include in keymaps ([#22423](https://github.com/qmk/qmk_firmware/pull/22423))
* LED drivers: register naming cleanups ([#22436](https://github.com/qmk/qmk_firmware/pull/22436))
* Slight refactor of joystick axis type into typedef ([#22445](https://github.com/qmk/qmk_firmware/pull/22445))
* Generalise analog SRC inclusion ([#22448](https://github.com/qmk/qmk_firmware/pull/22448))
* Revert "chibios: disable RWX segment warning on newer GNU lds" ([#22469](https://github.com/qmk/qmk_firmware/pull/22469))
* chibios: disable RWX segment warning on newer GNU lds ([#22471](https://github.com/qmk/qmk_firmware/pull/22471))
CLI:
* Implement data driven lighting defaults ([#21825](https://github.com/qmk/qmk_firmware/pull/21825))
* Generate keymap.json config options more forcefully ([#21960](https://github.com/qmk/qmk_firmware/pull/21960))
* Implement data driven dip switches ([#22017](https://github.com/qmk/qmk_firmware/pull/22017))
* Improve argument handling of c2json ([#22170](https://github.com/qmk/qmk_firmware/pull/22170))
* Support additional split sync items for info.json ([#22193](https://github.com/qmk/qmk_firmware/pull/22193))
* CLI refactoring for common build target APIs ([#22221](https://github.com/qmk/qmk_firmware/pull/22221))
* Add dd mapping for hardware based split handedness ([#22369](https://github.com/qmk/qmk_firmware/pull/22369))
* CLI parallel search updates ([#22525](https://github.com/qmk/qmk_firmware/pull/22525))
* Remove duplicates from search results ([#22528](https://github.com/qmk/qmk_firmware/pull/22528))
Keyboards:
* Add KPRepublic/BM40hsrgb rev2 ([#16689](https://github.com/qmk/qmk_firmware/pull/16689))
* update to data driven - superseeds part of https://github.com/qmk/qmk… ([#20220](https://github.com/qmk/qmk_firmware/pull/20220))
* Modernize `dactyl_manuform/dmote` keyboard ([#20427](https://github.com/qmk/qmk_firmware/pull/20427))
* add Skyloong/GK61_V1 keyboard ([#21364](https://github.com/qmk/qmk_firmware/pull/21364))
* [Refactor] Make changes to some pins ([#21380](https://github.com/qmk/qmk_firmware/pull/21380))
* Add missing fullsize extended default layouts ([#21402](https://github.com/qmk/qmk_firmware/pull/21402))
* Add Skyloong/Gk61 PRO keyboard ([#21450](https://github.com/qmk/qmk_firmware/pull/21450))
* Added skyloong/Qk21 v1 Number Pad ([#21467](https://github.com/qmk/qmk_firmware/pull/21467))
* matchstickworks/southpad - Move files to rev1, add rev2 ([#21574](https://github.com/qmk/qmk_firmware/pull/21574))
* partially modernize `dactyl_minidox` ([#21576](https://github.com/qmk/qmk_firmware/pull/21576))
* tominabox1/le_chiffre oled rework ([#21611](https://github.com/qmk/qmk_firmware/pull/21611))
* Add Skyloong/Gk61_pro_48 keyboard ([#21654](https://github.com/qmk/qmk_firmware/pull/21654))
* Adding support for new Waffling60 revision ([#21664](https://github.com/qmk/qmk_firmware/pull/21664))
* Leeloo revision 2 updates. ([#21671](https://github.com/qmk/qmk_firmware/pull/21671))
* rename og60 to tofu60 ([#21684](https://github.com/qmk/qmk_firmware/pull/21684))
* add tofujr v2 keyboard ([#21740](https://github.com/qmk/qmk_firmware/pull/21740))
* Rotary numpad ([#21744](https://github.com/qmk/qmk_firmware/pull/21744))
* Update era/divine ([#21767](https://github.com/qmk/qmk_firmware/pull/21767))
* 1UpKeyboards Pi60 Layout Additions ([#21874](https://github.com/qmk/qmk_firmware/pull/21874))
* BIOI keyboards: use core UART driver ([#21879](https://github.com/qmk/qmk_firmware/pull/21879))
* Resolve some "Layout should not contain name of keyboard" lint warnings ([#21898](https://github.com/qmk/qmk_firmware/pull/21898))
* fc660c/fc980c: clean up actuation point adjustment code ([#21964](https://github.com/qmk/qmk_firmware/pull/21964))
* Chromatonemini info json revised to support qmk 0.22.2 ([#21966](https://github.com/qmk/qmk_firmware/pull/21966))
* Migrate spi_flash WEAR_LEVELING_DRIVER to info.json ([#21978](https://github.com/qmk/qmk_firmware/pull/21978))
* Remove duplication of RP2040 EEPROM defaults ([#21979](https://github.com/qmk/qmk_firmware/pull/21979))
* Remove duplication of STM32L432 EEPROM defaults ([#21981](https://github.com/qmk/qmk_firmware/pull/21981))
* Migrate spi EEPROM_DRIVER to info.json ([#21991](https://github.com/qmk/qmk_firmware/pull/21991))
* Update Keychron Q1v1 ([#21993](https://github.com/qmk/qmk_firmware/pull/21993))
* Update Keychron Q2 ([#21994](https://github.com/qmk/qmk_firmware/pull/21994))
* Update Keychron Q3 ([#21995](https://github.com/qmk/qmk_firmware/pull/21995))
* Update Keychron Q4 ([#21996](https://github.com/qmk/qmk_firmware/pull/21996))
* Migrate WEAR_LEVELING_*_SIZE to info.json ([#22010](https://github.com/qmk/qmk_firmware/pull/22010))
* Remove duplication of EEPROM defaults ([#22011](https://github.com/qmk/qmk_firmware/pull/22011))
* Migrate i2c EEPROM_DRIVER to info.json ([#22013](https://github.com/qmk/qmk_firmware/pull/22013))
* Remove config.h which only set DYNAMIC_KEYMAP_LAYER_COUNT ([#22034](https://github.com/qmk/qmk_firmware/pull/22034))
* Add community layout support to tofu60 ([#22041](https://github.com/qmk/qmk_firmware/pull/22041))
* Update Keychron Q0 ([#22068](https://github.com/qmk/qmk_firmware/pull/22068))
* Remove custom ISSI lighting code ([#22073](https://github.com/qmk/qmk_firmware/pull/22073))
* add dp3000 rev2 featuring rgblight ([#22084](https://github.com/qmk/qmk_firmware/pull/22084))
* Remove ALLOW_WARNINGS and PICO_INTRINSICS_ENABLED ([#22085](https://github.com/qmk/qmk_firmware/pull/22085))
* Partially migrate `DYNAMIC_KEYMAP_LAYER_COUNT` ([#22087](https://github.com/qmk/qmk_firmware/pull/22087))
* feat(eyeohdesigns/babyv): rgb matrix ([#22105](https://github.com/qmk/qmk_firmware/pull/22105))
* input_club/infinity60: remove custom 3731 code, convert to LED Matrix ([#22117](https://github.com/qmk/qmk_firmware/pull/22117))
* YMDK Melody96 Break-Up ([#22121](https://github.com/qmk/qmk_firmware/pull/22121))
* Remove duplicated rgblight implementation from mxss ([#22122](https://github.com/qmk/qmk_firmware/pull/22122))
* KC60 Layout Standardization and Cleanup ([#22125](https://github.com/qmk/qmk_firmware/pull/22125))
* Convert adm42 to data driven ([#22144](https://github.com/qmk/qmk_firmware/pull/22144))
* Update Drop keyboards for develop ([#22145](https://github.com/qmk/qmk_firmware/pull/22145))
* move soda/mango and soda/pocket to magic_force/mf17 and magic_force/mf34 ([#22151](https://github.com/qmk/qmk_firmware/pull/22151))
* GMMK2 65% ISO Community Layout Support ([#22152](https://github.com/qmk/qmk_firmware/pull/22152))
* Leeloo v2.1 revision 3 updates. ([#22236](https://github.com/qmk/qmk_firmware/pull/22236))
* jian/rev1: convert to DIP Switch ([#22248](https://github.com/qmk/qmk_firmware/pull/22248))
* Enable linking of encoders to switch within layout macros ([#22264](https://github.com/qmk/qmk_firmware/pull/22264))
* Migrate recently introduced sync items ([#22305](https://github.com/qmk/qmk_firmware/pull/22305))
* Rename LINE FRIENDS TKL keyboard ([#22310](https://github.com/qmk/qmk_firmware/pull/22310))
* feat(mechwild/clunker): new layouts ([#22342](https://github.com/qmk/qmk_firmware/pull/22342))
* Remove use of broken split.main ([#22363](https://github.com/qmk/qmk_firmware/pull/22363))
* whitefox: remove pointless file ([#22366](https://github.com/qmk/qmk_firmware/pull/22366))
* Migrate some EEPROM config to info.json ([#22434](https://github.com/qmk/qmk_firmware/pull/22434))
* Remove unnecessary driver counts ([#22435](https://github.com/qmk/qmk_firmware/pull/22435))
* Migrate some dip switch config to info.json ([#22437](https://github.com/qmk/qmk_firmware/pull/22437))
* Remove userspace keymaps ([#22544](https://github.com/qmk/qmk_firmware/pull/22544))
* Stub out community layout directory structure ([#22545](https://github.com/qmk/qmk_firmware/pull/22545))
* Remove symbolic linked userspace folder ([#22548](https://github.com/qmk/qmk_firmware/pull/22548))
Keyboard fixes:
* fix unxmaal for 60_iso ([#21975](https://github.com/qmk/qmk_firmware/pull/21975))
* Fix input_club/k_type when RGB Matrix disabled ([#22021](https://github.com/qmk/qmk_firmware/pull/22021))
* Fixup snes_macropad on develop ([#22444](https://github.com/qmk/qmk_firmware/pull/22444))
* Fix missed shutdown callbacks ([#22549](https://github.com/qmk/qmk_firmware/pull/22549))
Others:
* Implement data driven wear leveling ([#21906](https://github.com/qmk/qmk_firmware/pull/21906))
* More data driven RGB/LED Matrix config ([#21939](https://github.com/qmk/qmk_firmware/pull/21939))
* Update WS2812 docs and add APA102 docs ([#22106](https://github.com/qmk/qmk_firmware/pull/22106))
* Add DD mappings for locking switch ([#22242](https://github.com/qmk/qmk_firmware/pull/22242))
Bugs:
* Improve test invocation, fix Retro Shift bugs, and add Auto+Retro Shift test cases ([#15889](https://github.com/qmk/qmk_firmware/pull/15889))
* [Bugfix] `qp_ellipse` overflow ([#19005](https://github.com/qmk/qmk_firmware/pull/19005))
* Cater for ECC failures in EFL wear-leveling. ([#19749](https://github.com/qmk/qmk_firmware/pull/19749))
* Fix OSM on a OSL activated layer ([#20410](https://github.com/qmk/qmk_firmware/pull/20410))
* Fixed WB32 MCU remote wakeup issue ([#20863](https://github.com/qmk/qmk_firmware/pull/20863))
* Optimize the additive DAC code, fixing performance-related hangs ([#21662](https://github.com/qmk/qmk_firmware/pull/21662))
* [Enhancement] Improvements for debounce test coverage + bug fixes for sym_defer_g and sym_eager_pr ([#21667](https://github.com/qmk/qmk_firmware/pull/21667))
* fix: make clicky delay silent ([#21866](https://github.com/qmk/qmk_firmware/pull/21866))
* Add `mousekey.h` include to `quantum.h` ([#21897](https://github.com/qmk/qmk_firmware/pull/21897))
* Fix default layer value in eeconfig_init ([#21909](https://github.com/qmk/qmk_firmware/pull/21909))
* Add RTC IRQ Priority to RP2040 board files ([#21926](https://github.com/qmk/qmk_firmware/pull/21926))
* Update AW20216S LED type ([#22072](https://github.com/qmk/qmk_firmware/pull/22072))
* LED/RGB Matrix: prefix driver defines ([#22088](https://github.com/qmk/qmk_firmware/pull/22088))
* RGBLight/Backlight: add prefixed driver defines ([#22089](https://github.com/qmk/qmk_firmware/pull/22089))
* Fix lower cpi bound on PMW33XX ([#22108](https://github.com/qmk/qmk_firmware/pull/22108))
* Fix parsing/validation for 21939 ([#22148](https://github.com/qmk/qmk_firmware/pull/22148))
* is31fl3733: complete LED Matrix support ([#22149](https://github.com/qmk/qmk_firmware/pull/22149))
* Fix memory leak in realloc failure handling ([#22188](https://github.com/qmk/qmk_firmware/pull/22188))
* avrdude: Version 7.2 changes the text output ([#22235](https://github.com/qmk/qmk_firmware/pull/22235))
* Resolve invalid keyboard alias targets ([#22239](https://github.com/qmk/qmk_firmware/pull/22239))
* Prep work for NKRO report separation ([#22268](https://github.com/qmk/qmk_firmware/pull/22268))
* ChibiOS pin defs: use only vendor if present ([#22297](https://github.com/qmk/qmk_firmware/pull/22297))
* Fix invalid LED driver config ([#22312](https://github.com/qmk/qmk_firmware/pull/22312))
* Fix compilation error when led/rgb process limit is zero. ([#22328](https://github.com/qmk/qmk_firmware/pull/22328))
* V-USB: Fix `GET_IDLE/SET_IDLE` ([#22332](https://github.com/qmk/qmk_firmware/pull/22332))
* QP getters correction ([#22357](https://github.com/qmk/qmk_firmware/pull/22357))
* Fix 'to_c' for config.h mappings ([#22364](https://github.com/qmk/qmk_firmware/pull/22364))
* snled27351: fix missing `i2c_init()` ([#22446](https://github.com/qmk/qmk_firmware/pull/22446))
* Move BACKLIGHT_PWM_PERIOD to correct docs section ([#22480](https://github.com/qmk/qmk_firmware/pull/22480))
* `qmk find`: Fix failure with multiple filters ([#22497](https://github.com/qmk/qmk_firmware/pull/22497))
* Fix `qmk find` failure due to circular imports ([#22523](https://github.com/qmk/qmk_firmware/pull/22523))

367
docs/ChangeLog/20240225.md Normal file
View File

@@ -0,0 +1,367 @@
# QMK Breaking Changes - 2024 February 25 Changelog
## Notable Features :id=notable-features
_0.24.0_ is mainly a maintenance release of QMK Firmware -- as per last few breaking changes cycles, there have been a lot of behind-the-scenes changes, mainly:
* continued purge of user keymaps
* migration of RGB matrix configuration into `info.json` files
* standardisation of `LAYOUT` naming
* keyboard relocations
* addressing technical debt
## Changes Requiring User Action :id=changes-requiring-user-action
### Windows Driver Changes ([QMK Toolbox 0.3.0 Release](https://github.com/qmk/qmk_toolbox/releases/tag/0.3.0))
Flashing keyboards that target `atmel-dfu` or `qmk-dfu` on Windows using `qmk flash` or QMK Toolbox have traditionally used _libusb_ for access to the DFU USB device. Since QMK Toolbox 0.3.0, this has changed to WinUSB.
If you update QMK Toolbox or update QMK MSYS, you may find that flashing Atmel DFU keyboards no longer functions as intended. If you strike such issues when flashing new firmware, you will need to replace the _libusb_ driver with _WinUSB_ using Zadig. You can follow the [Recovering from Installation to Wrong Device](driver_installation_zadig.md#recovering-from-installation-to-wrong-device) instructions to replace the driver associated with the Atmel DFU bootloader, skipping the section about removal as Zadig will safely replace the driver instead. Please ensure your keyboard is in bootloader mode and has _libusb_ as the existing driver before attempting to use Zadig to replace the driver. If instead you see _HidUsb_ you're not in bootloader mode and should not continue with driver replacement.
### Updated Keyboard Codebases :id=updated-keyboard-codebases
One note with updated keyboard names -- historical keyboard names are still considered valid when using [External Userspace](newbs_external_userspace.md) for builds. If you're already using External Userspace, you do not need to move your keymap inside your repository.
| Old Keyboard Name | New Keyboard Name |
|-------------------------|---------------------------------|
| enter67 | kezewa/enter67 |
| enter80 | kezewa/enter80 |
| epoch80 | kbdfans/epoch80 |
| eu_isolation | p3d/eu_isolation |
| flygone60/rev3 | shandoncodes/flygone60/rev3 |
| hub16 | joshajohnson/hub16 |
| hub20 | joshajohnson/hub20 |
| jm60 | kbdfans/jm60 |
| kira75 | kira/kira75 |
| kira80 | kira/kira80 |
| kmac | kbdmania/kmac |
| kmac_pad | kbdmania/kmac_pad |
| kudox/columner | kumaokobo/kudox/columner |
| kudox/rev1 | kumaokobo/kudox/rev1 |
| kudox/rev2 | kumaokobo/kudox/rev2 |
| kudox/rev3 | kumaokobo/kudox/rev3 |
| kudox_full/rev1 | kumaokobo/kudox_full/rev1 |
| kudox_game | kumaokobo/kudox_game |
| kudox_game/rev1 | kumaokobo/kudox_game/rev1 |
| kudox_game/rev2 | kumaokobo/kudox_game/rev2 |
| laser_ninja/pumpkin_pad | laser_ninja/pumpkinpad |
| late9/rev1 | rookiebwoy/late9/rev1 |
| lefty | smoll/lefty |
| lefty/rev1 | smoll/lefty/rev1 |
| lefty/rev2 | smoll/lefty/rev2 |
| lpad | laneware/lpad |
| lw67 | laneware/lw67 |
| lw75 | laneware/lw75 |
| macro1 | laneware/macro1 |
| macro3 | handwired/macro3 |
| miniaxe | kagizaraya/miniaxe |
| mino/hotswap | shandoncodes/mino/hotswap |
| mino_plus/hotswap | shandoncodes/mino_plus/hotswap |
| mino_plus/soldered | shandoncodes/mino_plus/soldered |
| mnk1800s | monokei/mnk1800s |
| mnk50 | monokei/mnk50 |
| mnk75 | monokei/mnk75 |
| moonlander | zsa/moonlander |
| neopad/rev1 | rookiebwoy/neopad/rev1 |
| pico/65keys | kumaokobo/pico/65keys |
| pico/70keys | kumaokobo/pico/70keys |
| pw88 | smoll/pw88 |
| q4z | p3d/q4z |
| raindrop | laneware/raindrop |
| redox_w | redox/wireless |
| riot_pad | shandoncodes/riot_pad |
| spacey | p3d/spacey |
| synapse | p3d/synapse |
| tw40 | p3d/tw40 |
| w1_at | geonworks/w1_at |
| z12 | zigotica/z12 |
| z34 | zigotica/z34 |
## Notable core changes :id=notable-core
### Renaming Arduino-style GPIO pin functions ([#23085](https://github.com/qmk/qmk_firmware/pull/23085), [#23093](https://github.com/qmk/qmk_firmware/pull/23093)) :id=gpio-rename
QMK has long used Arduino-style GPIO naming conventions. This has been confusing for users, as over time they've had new variations added, as well as users mistakenly thinking that QMK supports the rest of the Arduino ecosystem.
The decision was made to rename the GPIO manipulation functions with ones matching QMK Firmware's code styling.
| Old | New |
|------------------------------|---------------------------------------|
| `setPinInput(pin)` | `gpio_set_pin_input(pin)` |
| `setPinInputHigh(pin)` | `gpio_set_pin_input_high(pin)` |
| `setPinInputLow(pin)` | `gpio_set_pin_input_low(pin)` |
| `setPinOutput(pin)` | `gpio_set_pin_output(pin)` |
| `setPinOutputPushPull(pin)` | `gpio_set_pin_output_push_pull(pin)` |
| `setPinOutputOpenDrain(pin)` | `gpio_set_pin_output_open_drain(pin)` |
| `writePinHigh(pin)` | `gpio_write_pin_high(pin)` |
| `writePinLow(pin)` | `gpio_write_pin_low(pin)` |
| `writePin(pin, level)` | `gpio_write_pin(pin, level)` |
| `readPin(pin)` | `gpio_read_pin(pin)` |
| `togglePin(pin)` | `gpio_toggle_pin(pin)` |
### I2C driver API Changes ([#22905](https://github.com/qmk/qmk_firmware/pull/22905))
Much like the GPIO refactoring, I2C APIs were also updated to conform to QMK naming standards. This is largely irrelevant to people using subsystem abstractions such as touchpads or RGB lighting, and only affects people manually communicating with other peripherals.
| Old API | New API |
|--------------------|--------------------------|
| `i2c_readReg()` | `i2c_read_register()` |
| `i2c_readReg16()` | `i2c_read_register16()` |
| `i2c_writeReg()` | `i2c_write_register()` |
| `i2c_writeReg16()` | `i2c_write_register16()` |
### Renaming _Bootmagic Lite_ => _Bootmagic_ ([#22970](https://github.com/qmk/qmk_firmware/pull/22970), [#22979](https://github.com/qmk/qmk_firmware/pull/22979)) :id=bootmagic-rename
Bootmagic "Lite" had no real meaning once the historical Bootmagic "Full" was deprecated and removed. Any references to _Bootmagic Lite_ should now just refer to _Bootmagic_. We hope we got the majority of the code and the documentation, so if you find any more, let us know!
### Threshold for automatic mouse layer activation ([#21398](https://github.com/qmk/qmk_firmware/pull/21398)) :id=auto-mouse-layer
In some cases, accidental automatic activation of the mouse layer made it difficult to continue typing, such as when brushing across a trackball. `AUTO_MOUSE_THRESHOLD` is now a configurable option in `config.h` which allows for specifying what the movement threshold is before automatically activating the mouse layer.
### DIP Switch Mapping ([#22543](https://github.com/qmk/qmk_firmware/pull/22543)) :id=dip-switch-map
Much like Encoder Mapping, DIP Switch Mapping allows for specifying a table of actions to execute when a DIP switch state changes. See the [DIP Switch Documentation](feature_dip_switch.md#dip-switch-map) for more information.
```c
#if defined(DIP_SWITCH_MAP_ENABLE)
const uint16_t PROGMEM dip_switch_map[NUM_DIP_SWITCHES][NUM_DIP_STATES] = {
DIP_SWITCH_OFF_ON(DF(0), DF(1)),
DIP_SWITCH_OFF_ON(EC_NORM, EC_SWAP)
};
#endif
```
### Quantum Painter updates ([#18521](https://github.com/qmk/qmk_firmware/pull/18521), [#20645](https://github.com/qmk/qmk_firmware/pull/20645), [#22358](https://github.com/qmk/qmk_firmware/pull/22358)) :id=qp-updates
Quantum Painter picked up support for the following:
* ILI9486 displays
* SSD1306 displays, including smaller OLEDs
* Native panel pixel format support for fonts
Quantum Painter now supports the majority of common OLED panels supported by the basic OLED driver, so if you're using an ARM-based board you may find Quantum Painter a much more feature-rich API in comparison.
## Full changelist :id=full-changelist
Core:
* [Driver] ILI9486 on Quantum Painter ([#18521](https://github.com/qmk/qmk_firmware/pull/18521))
* Insert delay between shifted chars in send_string_with_delay ([#19280](https://github.com/qmk/qmk_firmware/pull/19280))
* [QP] Native palette support for fonts ([#20645](https://github.com/qmk/qmk_firmware/pull/20645))
* I2C driver cleanup ([#21273](https://github.com/qmk/qmk_firmware/pull/21273))
* Add option for auto mouse movement threshold ([#21398](https://github.com/qmk/qmk_firmware/pull/21398))
* Add Canadian French input locale ([#21456](https://github.com/qmk/qmk_firmware/pull/21456))
* Add encoder abstraction. ([#21548](https://github.com/qmk/qmk_firmware/pull/21548))
* Converted RGB matrix to use last_input_activity_elapsed(). ([#21687](https://github.com/qmk/qmk_firmware/pull/21687))
* Ignore space cadet key release when caps word is active ([#21721](https://github.com/qmk/qmk_firmware/pull/21721))
* Add OS detection callbacks ([#21777](https://github.com/qmk/qmk_firmware/pull/21777))
* joystick weights ([#21883](https://github.com/qmk/qmk_firmware/pull/21883))
* Add RGB matrix & LED Matrix support for IS31FL3729 ([#21944](https://github.com/qmk/qmk_firmware/pull/21944))
* dac_additive: Decouple the buffer length from the waveform length ([#22276](https://github.com/qmk/qmk_firmware/pull/22276))
* Add missing rgb matrix default parameters ([#22281](https://github.com/qmk/qmk_firmware/pull/22281))
* Remove console out endpoint ([#22304](https://github.com/qmk/qmk_firmware/pull/22304))
* Add ADC support STM32L4xx and STM32G4xx series MCUs ([#22341](https://github.com/qmk/qmk_firmware/pull/22341))
* Add QP support for smaller OLED displays and SSD1306 ([#22358](https://github.com/qmk/qmk_firmware/pull/22358))
* Add Imera converter ([#22419](https://github.com/qmk/qmk_firmware/pull/22419))
* LED drivers: refactor page selection ([#22518](https://github.com/qmk/qmk_firmware/pull/22518))
* Rework RGBLight driver system ([#22529](https://github.com/qmk/qmk_firmware/pull/22529))
* Add `APA102_LED_COUNT` define ([#22530](https://github.com/qmk/qmk_firmware/pull/22530))
* Add latam spanish headers ([#22542](https://github.com/qmk/qmk_firmware/pull/22542))
* Keymap introspection for Dip Switches ([#22543](https://github.com/qmk/qmk_firmware/pull/22543))
* Add basic presence check for cirque trackpad. ([#22546](https://github.com/qmk/qmk_firmware/pull/22546))
* Rename `RGBLED_NUM` -> `RGBLIGHT_LED_COUNT` ([#22570](https://github.com/qmk/qmk_firmware/pull/22570))
* LED drivers: change "TWI" to "I2C" ([#22617](https://github.com/qmk/qmk_firmware/pull/22617))
* LED drivers: extract IS31FL3742A from IS31COMMON ([#22620](https://github.com/qmk/qmk_firmware/pull/22620))
* Align Dip Switch feature ([#22625](https://github.com/qmk/qmk_firmware/pull/22625))
* LED/RGB Matrix: add header for drivers ([#22628](https://github.com/qmk/qmk_firmware/pull/22628))
* LED drivers: extract IS31FL3743A from IS31COMMON ([#22635](https://github.com/qmk/qmk_firmware/pull/22635))
* LED drivers: extract IS31FL3745 from IS31COMMON ([#22636](https://github.com/qmk/qmk_firmware/pull/22636))
* LED drivers: extract IS31FL3746A from IS31COMMON ([#22637](https://github.com/qmk/qmk_firmware/pull/22637))
* Update keyboard LED driver configs ([#22638](https://github.com/qmk/qmk_firmware/pull/22638))
* Solid reactive: improve fading effect ([#22656](https://github.com/qmk/qmk_firmware/pull/22656))
* Remove redundant RGB/LED matrix eeconfig init ([#22673](https://github.com/qmk/qmk_firmware/pull/22673))
* Remove redundant rgblight eeconfig init ([#22674](https://github.com/qmk/qmk_firmware/pull/22674))
* Remove redundant steno eeconfig init ([#22680](https://github.com/qmk/qmk_firmware/pull/22680))
* Rename `LED_DISABLE_WHEN_USB_SUSPENDED` -> `LED_MATRIX_SLEEP` ([#22681](https://github.com/qmk/qmk_firmware/pull/22681))
* Rename `RGB_DISABLE_WHEN_USB_SUSPENDED` -> `RGB_MATRIX_SLEEP` ([#22682](https://github.com/qmk/qmk_firmware/pull/22682))
* Align VUSB suspend protocol logic ([#22688](https://github.com/qmk/qmk_firmware/pull/22688))
* [Audio] Enable Complementary output for PWM Hardware driver ([#22726](https://github.com/qmk/qmk_firmware/pull/22726))
* Remove redundant audio eeconfig init ([#22736](https://github.com/qmk/qmk_firmware/pull/22736))
* Align location of tap dance keycode ([#22742](https://github.com/qmk/qmk_firmware/pull/22742))
* Align `SPLIT_HAND_MATRIX_GRID` left/right logic with `SPLIT_HAND_PIN` ([#22775](https://github.com/qmk/qmk_firmware/pull/22775))
* [CI] Regenerate Files ([#22795](https://github.com/qmk/qmk_firmware/pull/22795))
* Remove IS31FLCOMMON code ([#22800](https://github.com/qmk/qmk_firmware/pull/22800))
* Cirque reachable calibration aide ([#22803](https://github.com/qmk/qmk_firmware/pull/22803))
* LED drivers: rename "simple" to "mono" ([#22814](https://github.com/qmk/qmk_firmware/pull/22814))
* is31fl3733: change `write_register()` return type to `void` ([#22824](https://github.com/qmk/qmk_firmware/pull/22824))
* snled27351: change `write_register()` return type to `void` ([#22825](https://github.com/qmk/qmk_firmware/pull/22825))
* apa102: cleanups ([#22826](https://github.com/qmk/qmk_firmware/pull/22826))
* Remove PWM advanced check for WS2812 driver ([#22830](https://github.com/qmk/qmk_firmware/pull/22830))
* Allow ChibiOS `SIO` driver for `UART` driver ([#22839](https://github.com/qmk/qmk_firmware/pull/22839))
* LED drivers: more formatting ([#22865](https://github.com/qmk/qmk_firmware/pull/22865))
* LED drivers: change `write_pwm_buffer()` return type to `void` ([#22869](https://github.com/qmk/qmk_firmware/pull/22869))
* [CI] Regenerate Files ([#22872](https://github.com/qmk/qmk_firmware/pull/22872))
* LED drivers: switch to i2c_writeReg() ([#22878](https://github.com/qmk/qmk_firmware/pull/22878))
* LED drivers: remove `write_pwm_buffer()` from public API ([#22884](https://github.com/qmk/qmk_firmware/pull/22884))
* i2c: rename read/write register functions ([#22905](https://github.com/qmk/qmk_firmware/pull/22905))
* LED drivers: update I2C API usage ([#22951](https://github.com/qmk/qmk_firmware/pull/22951))
* LED drivers: create structs to hold PWM/scaling buffers ([#22955](https://github.com/qmk/qmk_firmware/pull/22955))
* Migrate and remove deprecated debug utils ([#22961](https://github.com/qmk/qmk_firmware/pull/22961))
* Remove call to removed i2c function in azoteq driver ([#22966](https://github.com/qmk/qmk_firmware/pull/22966))
* Tidy up print/debug logging headers ([#22969](https://github.com/qmk/qmk_firmware/pull/22969))
* Begin removal of bootmagic lite terminology ([#22970](https://github.com/qmk/qmk_firmware/pull/22970))
* LED drivers: place I2C addresses into an array ([#22975](https://github.com/qmk/qmk_firmware/pull/22975))
* Removal of bootmagic lite terminology ([#22979](https://github.com/qmk/qmk_firmware/pull/22979))
* Init pins for Analog Joystick sensor ([#22985](https://github.com/qmk/qmk_firmware/pull/22985))
* Workaround for G431 eeprom emulation ([#23002](https://github.com/qmk/qmk_firmware/pull/23002))
* is31fl3741: split PWM and scaling buffers ([#23049](https://github.com/qmk/qmk_firmware/pull/23049))
* LED drivers: update PWM register defines for `g_<driver>_leds` ([#23052](https://github.com/qmk/qmk_firmware/pull/23052))
* LED drivers: add support for shutdown pin ([#23058](https://github.com/qmk/qmk_firmware/pull/23058))
* AW20216S: combine EN pin defines ([#23067](https://github.com/qmk/qmk_firmware/pull/23067))
* Update naming convention for GPIO control macros ([#23085](https://github.com/qmk/qmk_firmware/pull/23085))
* Update GPIO macro usages in core ([#23093](https://github.com/qmk/qmk_firmware/pull/23093))
* OS Detection - Entire file should not be wrapped with ifdef ([#23108](https://github.com/qmk/qmk_firmware/pull/23108))
* IS31FL3729 updates ([#23109](https://github.com/qmk/qmk_firmware/pull/23109))
* Nix shell updates (Nixpkgs 2024-02-23, QMK CLI 1.1.5) ([#23143](https://github.com/qmk/qmk_firmware/pull/23143))
CLI:
* [Refactor] `qmk find` ([#21096](https://github.com/qmk/qmk_firmware/pull/21096))
* [Refactor] Break `QGFImageFile`'s `_save` function into smaller pieces ([#21124](https://github.com/qmk/qmk_firmware/pull/21124))
* [Enhancement] Prepare for `SyntaxWarning` ([#22562](https://github.com/qmk/qmk_firmware/pull/22562))
* Flag invalid keyboard features during lint ([#22832](https://github.com/qmk/qmk_firmware/pull/22832))
Submodule updates:
* chore(chibios-contrib): sync with chibios-21.11.x ([#22560](https://github.com/qmk/qmk_firmware/pull/22560))
Keyboards:
* Move `redox_w` into `redox` ([#21448](https://github.com/qmk/qmk_firmware/pull/21448))
* null ST110R2.1 (SaikouType) basic support with layouts ([#21623](https://github.com/qmk/qmk_firmware/pull/21623))
* New keyboard addition: Orthograph ([#21770](https://github.com/qmk/qmk_firmware/pull/21770))
* Add Olly JF Rev.2 ([#21775](https://github.com/qmk/qmk_firmware/pull/21775))
* Cleanup Satisfaction75 Firmware and add new revisions ([#22082](https://github.com/qmk/qmk_firmware/pull/22082))
* Migrate dynamic_keymap.layer_count < 4 where requried ([#22091](https://github.com/qmk/qmk_firmware/pull/22091))
* Bastard Keyboards: Add support for Dilemma v2 (3x5+3) ([#22185](https://github.com/qmk/qmk_firmware/pull/22185))
* Karn: correct layout data ([#22201](https://github.com/qmk/qmk_firmware/pull/22201))
* zk3mod : added OLED ([#22303](https://github.com/qmk/qmk_firmware/pull/22303))
* Adds support for the Iron180 V2 PCBs ([#22314](https://github.com/qmk/qmk_firmware/pull/22314))
* Add 5x13 and 6x13 ortho community layouts ([#22315](https://github.com/qmk/qmk_firmware/pull/22315))
* Cipulot refactoring ([#22368](https://github.com/qmk/qmk_firmware/pull/22368))
* Remove era/klein ([#22384](https://github.com/qmk/qmk_firmware/pull/22384))
* consolidate firmware folder in smoll parent folder ([#22401](https://github.com/qmk/qmk_firmware/pull/22401))
* `keycapsss/plaid_pad`: switch to encoder map ([#22474](https://github.com/qmk/qmk_firmware/pull/22474))
* Add EE-AT and move W1-AT under geonworks ([#22526](https://github.com/qmk/qmk_firmware/pull/22526))
* refactor: projectcain/vault35 ([#22558](https://github.com/qmk/qmk_firmware/pull/22558))
* Update Q5 ([#22575](https://github.com/qmk/qmk_firmware/pull/22575))
* Update Q7 ([#22577](https://github.com/qmk/qmk_firmware/pull/22577))
* Update Q8 ([#22578](https://github.com/qmk/qmk_firmware/pull/22578))
* Update Q9 ([#22579](https://github.com/qmk/qmk_firmware/pull/22579))
* Remove "empty" files ([#22603](https://github.com/qmk/qmk_firmware/pull/22603))
* Rename Pumpkin Pad to Pumkinpad ([#22651](https://github.com/qmk/qmk_firmware/pull/22651))
* Noodlepad Additions and Updates ([#22701](https://github.com/qmk/qmk_firmware/pull/22701))
* Refactor: move miniaxe into kagizaraya ([#22708](https://github.com/qmk/qmk_firmware/pull/22708))
* Refactor: move keyboards into zigotica folder ([#22709](https://github.com/qmk/qmk_firmware/pull/22709))
* Refactor: move keyboards into laneware folder ([#22710](https://github.com/qmk/qmk_firmware/pull/22710))
* Refactor: move keyboards into kezewa ([#22712](https://github.com/qmk/qmk_firmware/pull/22712))
* Refactor: move keyboards into kbdmania folder ([#22714](https://github.com/qmk/qmk_firmware/pull/22714))
* Refactor: move keyboards into monokei folder ([#22715](https://github.com/qmk/qmk_firmware/pull/22715))
* Refactor: move keyboards into kumaokobo ([#22719](https://github.com/qmk/qmk_firmware/pull/22719))
* Updating NCC1701KB and adding via support ([#22721](https://github.com/qmk/qmk_firmware/pull/22721))
* Move Moonlander to ZSA folder ([#22740](https://github.com/qmk/qmk_firmware/pull/22740))
* Refactor: group shandoncodes keyboards ([#22743](https://github.com/qmk/qmk_firmware/pull/22743))
* Refactor: group rookiebwoy keyboards ([#22745](https://github.com/qmk/qmk_firmware/pull/22745))
* Default folder correction for kumaokobo ([#22750](https://github.com/qmk/qmk_firmware/pull/22750))
* Default folder correction for rookiebwoy ([#22753](https://github.com/qmk/qmk_firmware/pull/22753))
* Refactor: move macro3 into handwired folder ([#22759](https://github.com/qmk/qmk_firmware/pull/22759))
* Refactor: group kira keyboards ([#22760](https://github.com/qmk/qmk_firmware/pull/22760))
* Refactor: group hub keyboards ([#22762](https://github.com/qmk/qmk_firmware/pull/22762))
* Refactor: move p3d keyboards ([#22763](https://github.com/qmk/qmk_firmware/pull/22763))
* Refactor: group kbdfans keyboards ([#22764](https://github.com/qmk/qmk_firmware/pull/22764))
* Remove incorrect use of WS2812_PIO_USE_PIO1 ([#22771](https://github.com/qmk/qmk_firmware/pull/22771))
* Migrate LED Matrix config to info.json ([#22792](https://github.com/qmk/qmk_firmware/pull/22792))
* Migrate RGB Matrix config to info.json - [0-9] ([#22797](https://github.com/qmk/qmk_firmware/pull/22797))
* Migrate RGB Matrix config to info.json - A ([#22798](https://github.com/qmk/qmk_firmware/pull/22798))
* Late9 keymaps update, added VIA support ([#22801](https://github.com/qmk/qmk_firmware/pull/22801))
* Migrate RGB Matrix config to info.json - B ([#22806](https://github.com/qmk/qmk_firmware/pull/22806))
* Migrate RGB Matrix config to info.json - C ([#22807](https://github.com/qmk/qmk_firmware/pull/22807))
* Migrate RGB Matrix config to info.json - EF ([#22808](https://github.com/qmk/qmk_firmware/pull/22808))
* Migrate RGB Matrix config to info.json - D ([#22811](https://github.com/qmk/qmk_firmware/pull/22811))
* H87g2 updates ([#22819](https://github.com/qmk/qmk_firmware/pull/22819))
* WT boards: extract `g_is31fl3736_leds` from wt_mono_backlight ([#22823](https://github.com/qmk/qmk_firmware/pull/22823))
* Migrate RGB Matrix config to info.json - G ([#22859](https://github.com/qmk/qmk_firmware/pull/22859))
* Use existing columns for 3x5 layout ([#22860](https://github.com/qmk/qmk_firmware/pull/22860))
* Migrate RGB Matrix config to info.json - H ([#22861](https://github.com/qmk/qmk_firmware/pull/22861))
* Migrate RGB Matrix config to info.json - J ([#22862](https://github.com/qmk/qmk_firmware/pull/22862))
* Migrate RGB Matrix config to info.json - I ([#22863](https://github.com/qmk/qmk_firmware/pull/22863))
* Migrate RGB Matrix config to info.json - L ([#22864](https://github.com/qmk/qmk_firmware/pull/22864))
* Migrate RGB Matrix config to info.json - NOPQ ([#22866](https://github.com/qmk/qmk_firmware/pull/22866))
* Migrate RGB Matrix config to info.json - XZY ([#22879](https://github.com/qmk/qmk_firmware/pull/22879))
* Zed65/no_backlight/cor65 correct data layout ([#22898](https://github.com/qmk/qmk_firmware/pull/22898))
* Migrate RGB Matrix config to info.json - M ([#22908](https://github.com/qmk/qmk_firmware/pull/22908))
* Migrate RGB Matrix config to info.json - RS ([#22909](https://github.com/qmk/qmk_firmware/pull/22909))
* Migrate RGB Matrix config to info.json - TUVW ([#22910](https://github.com/qmk/qmk_firmware/pull/22910))
* Migrate RGB Matrix config to info.json - K ([#22911](https://github.com/qmk/qmk_firmware/pull/22911))
* Remove `LAYOUTS_HAS_RGB` ([#22917](https://github.com/qmk/qmk_firmware/pull/22917))
* Migrate lighting defaults to info.json ([#22920](https://github.com/qmk/qmk_firmware/pull/22920))
* Ensure LTO is enabled as a `info.json` build config option ([#22932](https://github.com/qmk/qmk_firmware/pull/22932))
* refactor(keyboard): quokka ([#22942](https://github.com/qmk/qmk_firmware/pull/22942))
* Sango Keyboard ([#22971](https://github.com/qmk/qmk_firmware/pull/22971))
* Add FS streampad ([#22991](https://github.com/qmk/qmk_firmware/pull/22991))
* Remove always enabled effects from lighting animation list ([#22992](https://github.com/qmk/qmk_firmware/pull/22992))
* Migrate RGB Matrix config to info.json - keychron ([#22998](https://github.com/qmk/qmk_firmware/pull/22998))
* Migrate RGB Matrix config to info.json - Misc ([#23000](https://github.com/qmk/qmk_firmware/pull/23000))
* Remove ee_hands config from ferris/sweep firmware ([#23029](https://github.com/qmk/qmk_firmware/pull/23029))
* Migrate dip switch config to info.json - keychron ([#23037](https://github.com/qmk/qmk_firmware/pull/23037))
* [unicorne] Add a layout alias ([#23056](https://github.com/qmk/qmk_firmware/pull/23056))
* nacly/sodium62: Update vid, pid, and add via keymap ([#23063](https://github.com/qmk/qmk_firmware/pull/23063))
* LED drivers: update keyboard LED configs ([#23073](https://github.com/qmk/qmk_firmware/pull/23073))
* Remove invalid keyboard level features ([#23074](https://github.com/qmk/qmk_firmware/pull/23074))
* Migrate WEAR_LEVELING_* to info.json ([#23077](https://github.com/qmk/qmk_firmware/pull/23077))
* [Keymap Removal] keyboard with most keymaps ([#23081](https://github.com/qmk/qmk_firmware/pull/23081))
* Remove obvious user keymaps, keyboards/{v,x,y,z}* edition. ([#23083](https://github.com/qmk/qmk_firmware/pull/23083))
* Remove obvious user keymaps, keyboards/{s,t}* edition. ([#23084](https://github.com/qmk/qmk_firmware/pull/23084))
* [Keymap Removal] keyboard with most keymaps ([#23092](https://github.com/qmk/qmk_firmware/pull/23092))
* Fiuxup takashicompany/heavy_left ([#23094](https://github.com/qmk/qmk_firmware/pull/23094))
* Remove obvious user keymaps, keyboards/{i,j,k}* edition ([#23102](https://github.com/qmk/qmk_firmware/pull/23102))
* Manual user keymap removal ([#23104](https://github.com/qmk/qmk_firmware/pull/23104))
* Manual user keymap removal ([#23119](https://github.com/qmk/qmk_firmware/pull/23119))
* Migrate `RGBLED_NUM` -> `RGBLIGHT_LED_COUNT` in remaining non-user keymaps ([#23128](https://github.com/qmk/qmk_firmware/pull/23128))
Keyboard fixes:
* Fix VID and PID for AnnePro2 ([#22263](https://github.com/qmk/qmk_firmware/pull/22263))
* fix(kikoslab/kl90): Fix firmware to support encoder knobs properly ([#22649](https://github.com/qmk/qmk_firmware/pull/22649))
* fix: improper usage of keyboard/user-level functions ([#22652](https://github.com/qmk/qmk_firmware/pull/22652))
* Temporary fix for mechlovin/olly/octagon ([#22796](https://github.com/qmk/qmk_firmware/pull/22796))
* Keychron Q11 usb poweron fix ([#22799](https://github.com/qmk/qmk_firmware/pull/22799))
* capsunlocked/cu80/v2: Fix invalid RGB matrix config ([#22873](https://github.com/qmk/qmk_firmware/pull/22873))
* Fix typo in Redox config ([#22899](https://github.com/qmk/qmk_firmware/pull/22899))
* Fixup doio/kb16 ([#22921](https://github.com/qmk/qmk_firmware/pull/22921))
* Fixup takashicompany/minizone ([#22922](https://github.com/qmk/qmk_firmware/pull/22922))
* Fixup sofle ([#22934](https://github.com/qmk/qmk_firmware/pull/22934))
* Fix Issue with RGB Matrix not understanding the split keyboard ([#22997](https://github.com/qmk/qmk_firmware/pull/22997))
* Fixup sawnsprojects/krush60 ([#23095](https://github.com/qmk/qmk_firmware/pull/23095))
* Fixup kbd67/rev1 ([#23096](https://github.com/qmk/qmk_firmware/pull/23096))
* Fixup boardsource/equals ([#23106](https://github.com/qmk/qmk_firmware/pull/23106))
* Fixup inett_studio/sq80 ([#23121](https://github.com/qmk/qmk_firmware/pull/23121))
* Add LED/RGB Matrix drivers to info.json schema ([#23127](https://github.com/qmk/qmk_firmware/pull/23127))
* Fix for multiple AMUX usage ([#23155](https://github.com/qmk/qmk_firmware/pull/23155))
Bugs:
* MIDI sustain effect fix on qmk 0.22.2 ([#22114](https://github.com/qmk/qmk_firmware/pull/22114))
* Prevent `qmk migrate` processing unparsed info.json values ([#22374](https://github.com/qmk/qmk_firmware/pull/22374))
* Remove redundant backlight eeconfig init ([#22675](https://github.com/qmk/qmk_firmware/pull/22675))
* pointing_device ifdef indentation fix ([#22802](https://github.com/qmk/qmk_firmware/pull/22802))
* Ensure LED config is extracted when feature is disabled ([#22809](https://github.com/qmk/qmk_firmware/pull/22809))
* Generate true/false for _DEFAULT_ON options ([#22829](https://github.com/qmk/qmk_firmware/pull/22829))
* is31fl3733: fix driver sync backwards compatibility defines ([#22851](https://github.com/qmk/qmk_firmware/pull/22851))
* LED drivers: misc formatting and typos ([#22857](https://github.com/qmk/qmk_firmware/pull/22857))
* Allow generation of both LED and RGB Matrix config ([#22896](https://github.com/qmk/qmk_firmware/pull/22896))
* LED drivers: remove PWM register offsets ([#22897](https://github.com/qmk/qmk_firmware/pull/22897))
* `qmk format-json`: Force Unix line endings and ensure LF at EOF ([#22901](https://github.com/qmk/qmk_firmware/pull/22901))
* Fix cirque connected check ([#22948](https://github.com/qmk/qmk_firmware/pull/22948))
* Fix joystick initialization ([#22953](https://github.com/qmk/qmk_firmware/pull/22953))
* Workaround for `make test:all DEBUG=1` ([#23047](https://github.com/qmk/qmk_firmware/pull/23047))
* Fix unit test execution ([#23048](https://github.com/qmk/qmk_firmware/pull/23048))
* Fix git-submodule running in wrong location ([#23059](https://github.com/qmk/qmk_firmware/pull/23059))
* WS2812 bitbang: prefix for `NOP_FUDGE` define ([#23110](https://github.com/qmk/qmk_firmware/pull/23110))
* Fix make clean test:os_detection ([#23112](https://github.com/qmk/qmk_firmware/pull/23112))
* Fix pmw33xx sensor corruption on get-cpi call ([#23116](https://github.com/qmk/qmk_firmware/pull/23116))
* Ensure `qmk generate-compilation-database` copies to userspace as well. ([#23129](https://github.com/qmk/qmk_firmware/pull/23129))

View File

@@ -4,7 +4,7 @@
* [Building Your First Firmware](newbs_building_firmware.md)
* [Flashing Firmware](newbs_flashing.md)
* [Getting Help/Support](support.md)
* [Building With GitHub Userspace](newbs_building_firmware_workflow.md)
* [External Userspace](newbs_external_userspace.md)
* [Other Resources](newbs_learn_more_resources.md)
* [Syllabus](syllabus.md)
@@ -80,6 +80,7 @@
* [Caps Word](feature_caps_word.md)
* [Combos](feature_combo.md)
* [Debounce API](feature_debounce_type.md)
* [Digitizer](feature_digitizer.md)
* [EEPROM](feature_eeprom.md)
* [Key Lock](feature_key_lock.md)
* [Key Overrides](feature_key_overrides.md)
@@ -115,7 +116,6 @@
* [Bootmagic Lite](feature_bootmagic.md)
* [Converters](feature_converters.md)
* [Custom Matrix](custom_matrix.md)
* [Digitizer](feature_digitizer.md)
* [DIP Switch](feature_dip_switch.md)
* [Encoders](feature_encoders.md)
* [Haptic Feedback](feature_haptic_feedback.md)
@@ -126,7 +126,6 @@
* [PS/2 Mouse](feature_ps2_mouse.md)
* [Split Keyboard](feature_split_keyboard.md)
* [Stenography](feature_stenography.md)
* [Velocikey](feature_velocikey.md)
* Keyboard Building
* [Easy Maker for One Offs](easy_maker.md)
@@ -139,7 +138,7 @@
* Breaking Changes
* [Overview](breaking_changes.md)
* [My Pull Request Was Flagged](breaking_changes_instructions.md)
* [Most Recent ChangeLog](ChangeLog/20230827.md "QMK v0.22.0 - 2023 Aug 27")
* [Most Recent ChangeLog](ChangeLog/20240225.md "QMK v0.24.0 - 2024 Feb 25")
* [Past Breaking Changes](breaking_changes_history.md)
* C Development
@@ -148,6 +147,7 @@
* [Compatible Microcontrollers](compatible_microcontrollers.md)
* [Drivers](hardware_drivers.md)
* [ADC Driver](adc_driver.md)
* [APA102 Driver](apa102_driver.md)
* [Audio Driver](audio_driver.md)
* [I2C Driver](i2c_driver.md)
* [SPI Driver](spi_driver.md)

View File

@@ -9,7 +9,7 @@ This driver currently supports both AVR and a limited selection of ARM devices.
To use this driver, add the following to your `rules.mk`:
```make
SRC += analog.c
ANALOG_DRIVER_REQUIRED = yes
```
Then place this include at the top of your code:

49
docs/apa102_driver.md Normal file
View File

@@ -0,0 +1,49 @@
# APA102 Driver :id=apa102-driver
This driver provides support for APA102 addressable RGB LEDs. They are similar to the [WS2812](ws2812_driver.md) LEDs, but have increased data and refresh rates.
## Usage :id=usage
In most cases, the APA102 driver code is automatically included if you are using either the [RGBLight](feature_rgblight.md) or [RGB Matrix](feature_rgb_matrix.md) feature with the `apa102` driver set, and you would use those APIs instead.
However, if you need to use the driver standalone, add the following to your `rules.mk`:
```make
APA102_DRIVER_REQUIRED = yes
```
You can then call the APA102 API by including `apa102.h` in your code.
## Basic Configuration :id=basic-configuration
Add the following to your `config.h`:
|Define |Default |Description |
|---------------------------|-------------|------------------------------------------------------------------|
|`APA102_DI_PIN` |*Not defined*|The GPIO pin connected to the DI pin of the first LED in the chain|
|`APA102_CI_PIN` |*Not defined*|The GPIO pin connected to the CI pin of the first LED in the chain|
|`APA102_DEFAULT_BRIGHTNESS`|`31` |The default global brightness level of the LEDs, from 0 to 31 |
## API :id=api
### `void apa102_setleds(rgb_led_t *start_led, uint16_t num_leds)`
Send RGB data to the APA102 LED chain.
#### Arguments :id=api-apa102-setleds-arguments
- `rgb_led_t *start_led`
A pointer to the LED array.
- `uint16_t num_leds`
The length of the LED array.
---
### `void apa102_set_brightness(uint8_t brightness)`
Set the global brightness.
#### Arguments :id=api-apa102-set-brightness-arguments
- `uint8_t brightness`
The brightness level to set, from 0 to 31.

View File

@@ -116,19 +116,32 @@ Additionally, in the board config, you'll want to make changes to enable the DAC
| Define | Defaults | Description |
| -------------------------------- | -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `AUDIO_DAC_SAMPLE_MAX` | `4095U` | Highest value allowed. Lower value means lower volume. And 4095U is the upper limit, since this is limited to a 12 bit value. Only effects non-pregenerated samples. |
| `AUDIO_DAC_OFF_VALUE` | `AUDIO_DAC_SAMPLE_MAX / 2` | The value of the DAC when notplaying anything. Some setups may require a high (`AUDIO_DAC_SAMPLE_MAX`) or low (`0`) value here. |
| `AUDIO_DAC_OFF_VALUE` | `AUDIO_DAC_SAMPLE_MAX / 2` | The value of the DAC when not playing anything. Some setups may require a high (`AUDIO_DAC_SAMPLE_MAX`) or low (`0`) value here. |
| `AUDIO_MAX_SIMULTANEOUS_TONES` | __see next table__ | The number of tones that can be played simultaneously. A value that is too high may freeze the controller or glitch out when too many tones are being played. |
| `AUDIO_DAC_SAMPLE_RATE` | __see next table__ | Effective bit rate of the DAC (in hertz), higher limits simultaneous tones, and lower sacrifices quality. |
| `AUDIO_DAC_BUFFER_SIZE` | __see next table__ | Number of samples generated every refill. Too few may cause excessive CPU load; too many may cause freezes, RAM or flash exhaustion or lags during matrix scanning. |
There are a number of predefined quality settings that you can use, with "sane minimum" being the default. You can use custom values by simply defining the sample rate and number of simultaneous tones, instead of using one of the listed presets.
There are a number of predefined quality settings that you can use, with "sane minimum" being the default. You can use custom values by simply defining the sample rate, number of simultaneous tones and buffer size, instead of using one of the listed presets.
| Define | Sample Rate | Simultaneous tones |
| --------------------------------- | ----------- | ------------------- |
| `AUDIO_DAC_QUALITY_VERY_LOW` | `11025U` | `8` |
| `AUDIO_DAC_QUALITY_LOW` | `22040U` | `4` |
| `AUDIO_DAC_QUALITY_HIGH` | `44100U` | `2` |
| `AUDIO_DAC_QUALITY_VERY_HIGH` | `88200U` | `1` |
| `AUDIO_DAC_QUALITY_SANE_MINIMUM` | `16384U` | `8` |
| Define | Sample Rate | Simultaneous tones | Buffer size |
| --------------------------------- | ----------- | ------------------- | ----------- |
| `AUDIO_DAC_QUALITY_VERY_LOW` | `11025U` | `8` | `64U` |
| `AUDIO_DAC_QUALITY_LOW` | `22050U` | `4` | `128U` |
| `AUDIO_DAC_QUALITY_HIGH` | `44100U` | `2` | `256U` |
| `AUDIO_DAC_QUALITY_VERY_HIGH` | `88200U` | `1` | `256U` |
| `AUDIO_DAC_QUALITY_SANE_MINIMUM` | `16384U` | `8` | `64U` |
#### Notes on buffer size :id=buffer-size
By default, the buffer size attempts to keep to these constraints:
* The interval between buffer refills can't be too short, since the microcontroller would then only be servicing buffer refills and would freeze up.
* On the additive driver, the interval between buffer refills can't be too long, since matrix scanning would suffer lengthy pauses every so often, which would delay key presses or releases or lose some short taps altogether.
* The interval between buffer refills is kept to a minimum, which allows notes to stop as soon as possible after they should.
* For greater compatibility, the buffer size should be a power of 2.
* The buffer size being too large causes resource exhaustion leading to build failures or freezing at runtime: RAM usage (on the additive driver) or flash usage (on the basic driver).
You can lower the buffer size if you need a bit more space in your firmware, or raise it if your keyboard freezes up.
```c
@@ -186,6 +199,11 @@ with all this information, the configuration would contain these lines:
ChibiOS uses GPIOv1 for the F103, which only knows of one alternate function.
On 'larger' STM32s, GPIOv2 or GPIOv3 are used; with them it is also necessary to configure `AUDIO_PWM_PAL_MODE` to the correct alternate function for the selected pin, timer and timer-channel.
You can also use the Complementary output (`TIMx_CHyN`) for PWM on supported controllers. To enable this functionality, you will need to make the following changes:
```c
// config.h:
#define AUDIO_PWM_COMPLEMENTARY_OUTPUT
```
### PWM software :id=pwm-software

View File

@@ -10,25 +10,25 @@ Practically, this means QMK merges the `develop` branch into the `master` branch
## What has been included in past Breaking Changes?
* [2024 Feb 25](ChangeLog/20240225.md)
* [2023 Nov 26](ChangeLog/20231126.md)
* [2023 Aug 27](ChangeLog/20230827.md)
* [2023 May 28](ChangeLog/20230528.md)
* [2023 Feb 26](ChangeLog/20230226.md)
* [Older Breaking Changes](breaking_changes_history.md)
## When is the next Breaking Change?
The next Breaking Change is scheduled for November 26, 2023.
The next Breaking Change is scheduled for May 26, 2024.
### Important Dates
* 2023 Aug 27 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions.
* 2023 Oct 29 - `develop` closed to new PRs.
* 2023 Oct 29 - Call for testers.
* 2023 Nov 5 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes
* 2023 Nov 19 - `develop` is locked, only critical bugfix PRs merged.
* 2023 Nov 23 - `master` is locked, no PRs merged.
* 2023 Nov 26 - Merge `develop` to `master`.
* 2023 Nov 26 - `master` is unlocked. PRs can be merged again.
* 2024 Feb 25 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions.
* 2024 Apr 28 - `develop` closed to new PRs.
* 2024 Apr 28 - Call for testers.
* 2024 May 5 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes
* 2024 May 19 - `develop` is locked, only critical bugfix PRs merged.
* 2024 May 23 - `master` is locked, no PRs merged.
* 2024 May 26 - Merge `develop` to `master`.
* 2024 May 26 - `master` is unlocked. PRs can be merged again.
## What changes will be included?
@@ -48,7 +48,7 @@ Criteria for acceptance:
Strongly suggested:
* The PR has a ChangeLog file describing the changes under `<qmk_firmware>/docs/Changelog/20231126`.
* The PR has a ChangeLog file describing the changes under `<qmk_firmware>/docs/Changelog/20240526`.
* This should be in Markdown format, with a name in the format `PR12345.md`, substituting the digits for your PRs ID.
* One strong recommendation that the ChangeLog document matches the PR description on GitHub, so as to ensure traceability.

View File

@@ -2,6 +2,8 @@
This page links to all previous changelogs from the QMK Breaking Changes process.
* [2024 Feb 25](ChangeLog/20240225.md) - version 0.24.0
* [2023 Nov 26](ChangeLog/20231126.md) - version 0.23.0
* [2023 Aug 27](ChangeLog/20230827.md) - version 0.22.0
* [2023 May 28](ChangeLog/20230528.md) - version 0.21.0
* [2023 Feb 26](ChangeLog/20230226.md) - version 0.20.0

View File

@@ -2,11 +2,11 @@
## Overview :id=overview
The QMK CLI makes building and working with QMK keyboards easier. We have provided a number of commands to simplify and streamline tasks such as obtaining and compiling the QMK firmware, creating keymaps, and more.
The QMK CLI (command line interface) makes building and working with QMK keyboards easier. We have provided a number of commands to simplify and streamline tasks such as obtaining and compiling the QMK firmware, creating keymaps, and more.
### Requirements :id=requirements
QMK requires Python 3.6 or greater. We try to keep the number of requirements small but you will also need to install the packages listed in [`requirements.txt`](https://github.com/qmk/qmk_firmware/blob/master/requirements.txt). These are installed automatically when you install the QMK CLI.
QMK requires Python 3.7 or greater. We try to keep the number of requirements small but you will also need to install the packages listed in [`requirements.txt`](https://github.com/qmk/qmk_firmware/blob/master/requirements.txt). These are installed automatically when you install the QMK CLI.
### Install Using Homebrew (macOS, some Linux) :id=install-using-homebrew
@@ -20,7 +20,7 @@ qmk setup # This will clone `qmk/qmk_firmware` and optionally set up your build
### Install Using pip :id=install-using-easy_install-or-pip
If your system is not listed above you can install QMK manually. First ensure that you have Python 3.6 (or later) installed and have installed pip. Then install QMK with this command:
If your system is not listed above you can install QMK manually. First ensure that you have Python 3.7 (or later) installed and have installed pip. Then install QMK with this command:
```
python3 -m pip install qmk

View File

@@ -362,6 +362,16 @@ This command is directory aware. It will automatically fill in KEYBOARD if you a
qmk list-keymaps -kb planck/ez
```
## `qmk migrate`
This command searches for legacy code that can be converted to the new `info.json` format and adds it to the specified keyboard's `info.json`.
**Usage**:
```
qmk migrate [-h] -kb KEYBOARD [-f FILTER]
```
## `qmk new-keyboard`
This command creates a new keyboard based on available templates.
@@ -482,6 +492,131 @@ $ qmk import-kbfirmware ~/Downloads/gh62.json
---
# External Userspace Commands
## `qmk userspace-add`
This command adds a keyboard/keymap to the External Userspace build targets.
**Usage**:
```
qmk userspace-add [-h] [-km KEYMAP] [-kb KEYBOARD] [builds ...]
positional arguments:
builds List of builds in form <keyboard>:<keymap>, or path to a keymap JSON file.
options:
-h, --help show this help message and exit
-km KEYMAP, --keymap KEYMAP
The keymap to build a firmware for. Ignored when a configurator export is supplied.
-kb KEYBOARD, --keyboard KEYBOARD
The keyboard to build a firmware for. Ignored when a configurator export is supplied.
```
**Example**:
```
$ qmk userspace-add -kb planck/rev6 -km default
Ψ Added planck/rev6:default to userspace build targets
Ψ Saved userspace file to /home/you/qmk_userspace/qmk.json
```
## `qmk userspace-remove`
This command removes a keyboard/keymap from the External Userspace build targets.
**Usage**:
```
qmk userspace-remove [-h] [-km KEYMAP] [-kb KEYBOARD] [builds ...]
positional arguments:
builds List of builds in form <keyboard>:<keymap>, or path to a keymap JSON file.
options:
-h, --help show this help message and exit
-km KEYMAP, --keymap KEYMAP
The keymap to build a firmware for. Ignored when a configurator export is supplied.
-kb KEYBOARD, --keyboard KEYBOARD
The keyboard to build a firmware for. Ignored when a configurator export is supplied.
```
**Example**:
```
$ qmk userspace-remove -kb planck/rev6 -km default
Ψ Removed planck/rev6:default from userspace build targets
Ψ Saved userspace file to /home/you/qmk_userspace/qmk.json
```
## `qmk userspace-list`
This command lists the External Userspace build targets.
**Usage**:
```
qmk userspace-list [-h] [-e]
options:
-h, --help show this help message and exit
-e, --expand Expands any use of `all` for either keyboard or keymap.
```
**Example**:
```
$ qmk userspace-list
Ψ Current userspace build targets:
Ψ Keyboard: planck/rev6, keymap: you
Ψ Keyboard: clueboard/66/rev3, keymap: you
```
## `qmk userspace-compile`
This command compiles all the External Userspace build targets.
**Usage**:
```
qmk userspace-compile [-h] [-e ENV] [-n] [-c] [-j PARALLEL] [-t]
options:
-h, --help show this help message and exit
-e ENV, --env ENV Set a variable to be passed to make. May be passed multiple times.
-n, --dry-run Don't actually build, just show the commands to be run.
-c, --clean Remove object files before compiling.
-j PARALLEL, --parallel PARALLEL
Set the number of parallel make jobs; 0 means unlimited.
-t, --no-temp Remove temporary files during build.
```
**Example**:
```
$ qmk userspace-compile
Ψ Preparing target list...
Build planck/rev6:you [OK]
Build clueboard/66/rev3:you [OK]
```
## `qmk userspace-doctor`
This command examines your environment and alerts you to potential problems related to External Userspace.
**Example**:
```
% qmk userspace-doctor
Ψ QMK home: /home/you/qmk_userspace/qmk_firmware
Ψ Testing userspace candidate: /home/you/qmk_userspace -- Valid `qmk.json`
Ψ QMK userspace: /home/you/qmk_userspace
Ψ Userspace enabled: True
```
---
# Developer Commands
## `qmk format-text`

View File

@@ -44,7 +44,7 @@ def hello(cli):
First we import the `cli` object from `milc`. This is how we interact with the user and control the script's behavior. We use `@cli.argument()` to define a command line flag, `--name`. This also creates a configuration variable named `hello.name` (and the corresponding `user.name`) which the user can set so they don't have to specify the argument. The `cli.subcommand()` decorator designates this function as a subcommand. The name of the subcommand will be taken from the name of the function.
Once inside our function we find a typical "Hello, World!" program. We use `cli.log` to access the underlying [Logger Object](https://docs.python.org/3.6/library/logging.html#logger-objects), whose behavior is user controllable. We also access the value for name supplied by the user as `cli.config.hello.name`. The value for `cli.config.hello.name` will be determined by looking at the `--name` argument supplied by the user, if not provided it will use the value in the `qmk.ini` config file, and if neither of those is provided it will fall back to the default supplied in the `cli.argument()` decorator.
Once inside our function we find a typical "Hello, World!" program. We use `cli.log` to access the underlying [Logger Object](https://docs.python.org/3.7/library/logging.html#logger-objects), whose behavior is user controllable. We also access the value for name supplied by the user as `cli.config.hello.name`. The value for `cli.config.hello.name` will be determined by looking at the `--name` argument supplied by the user, if not provided it will use the value in the `qmk.ini` config file, and if neither of those is provided it will fall back to the default supplied in the `cli.argument()` decorator.
# User Interaction
@@ -56,13 +56,13 @@ There are two main methods for outputting text in a subcommand- `cli.log` and `c
You can use special tokens to colorize your text, to make it easier to understand the output of your program. See [Colorizing Text](#colorizing-text) below.
Both of these methods support built-in string formatting using python's [printf style string format operations](https://docs.python.org/3.6/library/stdtypes.html#old-string-formatting). You can use tokens such as `%s` and `%d` within your text strings then pass the values as arguments. See our Hello, World program above for an example.
Both of these methods support built-in string formatting using python's [printf style string format operations](https://docs.python.org/3.7/library/stdtypes.html#old-string-formatting). You can use tokens such as `%s` and `%d` within your text strings then pass the values as arguments. See our Hello, World program above for an example.
You should never use the format operator (`%`) directly, always pass values as arguments.
### Logging (`cli.log`)
The `cli.log` object gives you access to a [Logger Object](https://docs.python.org/3.6/library/logging.html#logger-objects). We have configured our log output to show the user a nice emoji for each log level (or the log level name if their terminal does not support unicode.) This way the user can tell at a glance which messages are most important when something goes wrong.
The `cli.log` object gives you access to a [Logger Object](https://docs.python.org/3.7/library/logging.html#logger-objects). We have configured our log output to show the user a nice emoji for each log level (or the log level name if their terminal does not support unicode.) This way the user can tell at a glance which messages are most important when something goes wrong.
The default log level is `INFO`. If the user runs `qmk -v <subcommand>` the default log level will be set to `DEBUG`.

View File

@@ -317,7 +317,7 @@ At the time of this writing our tests are not very comprehensive. Looking at the
## Integration Tests
Integration tests can be found in `lib/python/qmk/tests/test_cli_commands.py`. This is where CLI commands are actually run and their overall behavior is verified. We use [`subprocess`](https://docs.python.org/3.6/library/subprocess.html#module-subprocess) to launch each CLI command and a combination of checking output and returncode to determine if the right thing happened.
Integration tests can be found in `lib/python/qmk/tests/test_cli_commands.py`. This is where CLI commands are actually run and their overall behavior is verified. We use [`subprocess`](https://docs.python.org/3.7/library/subprocess.html#module-subprocess) to launch each CLI command and a combination of checking output and returncode to determine if the right thing happened.
## Unit Tests

View File

@@ -223,7 +223,7 @@ If you define these options you will enable the associated feature, which may in
* Adds ability to [blink](feature_rgblight.md?id=lighting-layer-blink) a lighting layer for a specified number of milliseconds (e.g. to acknowledge an action).
* `#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF`
* If defined, then [lighting layers](feature_rgblight?id=overriding-rgb-lighting-onoff-status) will be shown even if RGB Light is off.
* `#define RGBLED_NUM 12`
* `#define RGBLIGHT_LED_COUNT 12`
* number of LEDs
* `#define RGBLIGHT_SPLIT`
* Needed if both halves of the board have RGB LEDs wired directly to the RGB output pin on the controllers instead of passing the output of the left half to the input of the right half
@@ -275,7 +275,7 @@ There are a few different ways to set handedness for split keyboards (listed in
* For using high/low pin to determine handedness, low = right hand, high = left hand. Replace `B7` with the pin you are using. This is optional, and if you leave `SPLIT_HAND_PIN` undefined, then you can still use the EE_HANDS method or MASTER_LEFT / MASTER_RIGHT defines like the stock Let's Split uses.
* `#define SPLIT_HAND_MATRIX_GRID <out_pin>,<in_pin>`
* The handedness is determined by using the intersection of the keyswitches in the key matrix, which does not exist. Normally, when this intersection is shorted (level low), it is considered left. If you define `#define SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT`, it is determined to be right when the level is low.
* The handedness is determined by using the intersection of the keyswitches in the key matrix, which does not exist. Normally, when this intersection is shorted (level low), it is considered right. If you define `#define SPLIT_HAND_MATRIX_GRID_LOW_IS_LEFT`, it is determined to be left when the level is low.
* `#define EE_HANDS` (only works if `SPLIT_HAND_PIN` and `SPLIT_HAND_MATRIX_GRID` are not defined)
* Reads the handedness value stored in the EEPROM after `eeprom-lefthand.eep`/`eeprom-righthand.eep` has been flashed to their respective halves.

View File

@@ -70,6 +70,7 @@ We have a few different types of changes in QMK, each requiring a different leve
* Keymaps: Make sure that `make keyboard:keymap` does not return any errors.
* Keyboards: Make sure that `make keyboard:all` does not return any errors.
* Core: Make sure that `make all` does not return any errors.
* Note that user-keymap and userspace contributions are no longer accepted.
* Make sure commit messages are understandable on their own. You should put a short description (no more than 70 characters) on the first line, the second line should be empty, and on the 3rd and later lines you should describe your commit in detail, if required. Example:
```
@@ -80,8 +81,6 @@ The kerpleplork was intermittently failing with error code 23. The root cause wa
Limited experimentation on the devices I have available shows that 7 is high enough to avoid confusing the kerpleplork, but I'd like to get some feedback from people with ARM devices to be sure.
```
!> **IMPORTANT:** If you would like to contribute a bugfix or improvement to user code, such as non-default keymaps, userspace and layouts, be sure to tag the original submitter of the code in your PR. Many users, regardless of skill level with Git and GitHub, may be confused or frustrated at their code being modified without their knowledge.
## Documentation
Documentation is one of the easiest ways to get started contributing to QMK. Finding places where the documentation is wrong or incomplete and fixing those is easy! We also very badly need someone to edit our documentation, so if you have editing skills but aren't sure where or how to jump in please [reach out for help](#where-can-i-go-for-help)!

View File

@@ -119,11 +119,11 @@ void keyboard_pre_init_user(void) {
// Call the keyboard pre init code.
// Set our LED pins as output
setPinOutput(B0);
setPinOutput(B1);
setPinOutput(B2);
setPinOutput(B3);
setPinOutput(B4);
gpio_set_pin_output(B0);
gpio_set_pin_output(B1);
gpio_set_pin_output(B2);
gpio_set_pin_output(B3);
gpio_set_pin_output(B4);
}
```
@@ -283,6 +283,65 @@ void suspend_wakeup_init_user(void) {
* Keyboard/Revision: `void suspend_power_down_kb(void)` and `void suspend_wakeup_init_user(void)`
* Keymap: `void suspend_power_down_kb(void)` and `void suspend_wakeup_init_user(void)`
# Keyboard Shutdown/Reboot Code :id=keyboard-shutdown-reboot-code
This function gets called whenever the firmware is reset, whether it's a soft reset or reset to the bootloader. This is the spot to use for any sort of cleanup, as this happens right before the actual reset. And it can be useful for turning off different systems (such as RGB, onboard screens, etc).
Additionally, it differentiates between the soft reset (eg, rebooting back into the firmware) or jumping to the bootloader.
Certain tasks are performed during shutdown too. The keyboard is cleared, music and midi is stopped (if enabled), the shutdown chime is triggered (if audio is enabled), and haptic is stopped.
If `jump_to_bootloader` is set to `true`, this indicates that the board will be entering the bootloader for a new firmware flash, whereas `false` indicates that this is happening for a soft reset and will load the firmware agaim immediately (such as when using `QK_REBOOT` or `QK_CLEAR_EEPROM`).
As there is a keyboard and user level function, returning `false` for the user function will disable the keyboard level function, allowing for customization.
?> Bootmagic does not trigger `shutdown_*()` as it happens before most of the initialization process.
### Example `shutdown_kb()` Implementation
```c
bool shutdown_kb(bool jump_to_bootloader) {
if (!shutdown_user(jump_to_bootloader)) {
return false;
}
if (jump_to_bootloader) {
// red for bootloader
rgb_matrix_set_color_all(RGB_OFF);
} else {
// off for soft reset
rgb_matrix_set_color_all(RGB_GREEN);
}
// force flushing -- otherwise will never happen
rgb_matrix_update_pwm_buffers();
return true;
}
```
### Example `shutdown_user()` Implementation
```c
bool shutdown_user(bool jump_to_bootloader) {
if (jump_to_bootloader) {
// red for bootloader
rgb_matrix_set_color_all(RGB_RED);
} else {
// off for soft reset
rgb_matrix_set_color_all(RGB_OFF);
}
// force flushing -- otherwise will never happen
rgb_matrix_update_pwm_buffers();
// false to not process kb level
return false;
}
```
### Keyboard shutdown/reboot Function Documentation
* Keyboard/Revision: `bool shutdown_kb(bool jump_to_bootloader)`
* Keymap: `bool shutdown_user(bool jump_to_bootloader)`
# Deferred Execution :id=deferred-execution
QMK has the ability to execute a callback after a specified period of time, rather than having to manually manage timers. To enable this functionality, set `DEFERRED_EXEC_ENABLE = yes` in rules.mk.

View File

@@ -70,13 +70,13 @@ The device name here is the name that appears in Zadig, and may not be what the
|Bootloader |Device Name |VID/PID |Driver |
|--------------|------------------------------|--------------|-------|
|`atmel-dfu` |ATmega16u2 DFU |`03EB:2FEF` |libusb0|
|`atmel-dfu` |ATmega32U2 DFU |`03EB:2FF0` |libusb0|
|`atmel-dfu` |ATm16U4 DFU V1.0.2 |`03EB:2FF3` |libusb0|
|`atmel-dfu` |ATm32U4DFU |`03EB:2FF4` |libusb0|
|`atmel-dfu` |*none* (AT90USB64) |`03EB:2FF9` |libusb0|
|`atmel-dfu` |AT90USB128 DFU |`03EB:2FFB` |libusb0|
|`qmk-dfu` |(keyboard name) Bootloader |As `atmel-dfu`|libusb0|
|`atmel-dfu` |ATmega16u2 DFU |`03EB:2FEF` |WinUSB |
|`atmel-dfu` |ATmega32U2 DFU |`03EB:2FF0` |WinUSB |
|`atmel-dfu` |ATm16U4 DFU V1.0.2 |`03EB:2FF3` |WinUSB |
|`atmel-dfu` |ATm32U4DFU |`03EB:2FF4` |WinUSB |
|`atmel-dfu` |*none* (AT90USB64) |`03EB:2FF9` |WinUSB |
|`atmel-dfu` |AT90USB128 DFU |`03EB:2FFB` |WinUSB |
|`qmk-dfu` |(keyboard name) Bootloader |As `atmel-dfu`|WinUSB |
|`halfkay` |*none* |`16C0:0478` |HidUsb |
|`caterina` |Pro Micro 3.3V |`1B4F:9203` |usbser |
|`caterina` |Pro Micro 5V |`1B4F:9205` |usbser |

View File

@@ -66,6 +66,14 @@ Currently QMK supports 25xx-series chips over SPI. As such, requires a working s
`#define EXTERNAL_EEPROM_PAGE_SIZE` | `32` | Page size of the EEPROM in bytes, as specified in the datasheet
`#define EXTERNAL_EEPROM_ADDRESS_SIZE` | `2` | The number of bytes to transmit for the memory location within the EEPROM
Default values and extended descriptions can be found in `drivers/eeprom/eeprom_spi.h`.
Alternatively, there are pre-defined hardware configurations for available chips/modules:
Module | Equivalent `#define` | Source
-----------------|---------------------------------|------------------------------------------
MB85RS64V FRAM | `define EEPROM_SPI_MB85RS64V` | <https://www.adafruit.com/product/1897>
!> There's no way to determine if there is an SPI EEPROM actually responding. Generally, this will result in reads of nothing but zero.
## Transient Driver configuration :id=transient-eeprom-driver-configuration
@@ -105,11 +113,11 @@ Configurable options in your keyboard's `config.h`:
`config.h` override | Default | Description
-----------------------------------------|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
`#define WEAR_LEVELING_EFL_FIRST_SECTOR` | _unset_ | The first sector on the MCU to use. By default this is not defined and calculated at runtime based on the MCU. However, different flash sizes on MCUs may require custom configuration.
`#define WEAR_LEVELING_EFL_FLASH_SIZE` | _unset_ | Allows overriding the flash size available for use for wear-leveling. Under normal circumstances this is automatically calculated and should not need to be overridden. Specifying a size larger than the amount actually available in flash will usually prevent the MCU from booting.
`#define WEAR_LEVELING_LOGICAL_SIZE` | `1024` | Number of bytes "exposed" to the rest of QMK and denotes the size of the usable EEPROM.
`#define WEAR_LEVELING_BACKING_SIZE` | `2048` | Number of bytes used by the wear-leveling algorithm for its underlying storage, and needs to be a multiple of the logical size.
`#define BACKING_STORE_WRITE_SIZE` | _automatic_ | The byte width of the underlying write used on the MCU, and is usually automatically determined from the selected MCU family. If an error occurs in the auto-detection, you'll need to consult the MCU's datasheet and determine this value, specifying it directly.
`#define WEAR_LEVELING_EFL_FIRST_SECTOR` | _unset_ | The first sector on the MCU to use. By default this is not defined and calculated at runtime based on the MCU. However, different flash sizes on MCUs may require custom configuration.
`#define WEAR_LEVELING_EFL_FLASH_SIZE` | _unset_ | Allows overriding the flash size available for use for wear-leveling. Under normal circumstances this is automatically calculated and should not need to be overridden. Specifying a size larger than the amount actually available in flash will usually prevent the MCU from booting.
`#define WEAR_LEVELING_LOGICAL_SIZE` | `(backing_size/2)` | Number of bytes "exposed" to the rest of QMK and denotes the size of the usable EEPROM.
`#define WEAR_LEVELING_BACKING_SIZE` | `2048` | Number of bytes used by the wear-leveling algorithm for its underlying storage, and needs to be a multiple of the logical size.
`#define BACKING_STORE_WRITE_SIZE` | _automatic_ | The byte width of the underlying write used on the MCU, and is usually automatically determined from the selected MCU family. If an error occurs in the auto-detection, you'll need to consult the MCU's datasheet and determine this value, specifying it directly.
!> If your MCU does not boot after swapping to the EFL wear-leveling driver, it's likely that the flash size is incorrectly detected, usually as an MCU with larger flash and may require overriding.
@@ -139,7 +147,7 @@ Configurable options in your keyboard's `config.h`:
------------------------------------------|----------------------------|--------------------------------------------------------------------------------------------------------------------------------
`#define WEAR_LEVELING_RP2040_FLASH_SIZE` | `PICO_FLASH_SIZE_BYTES` | Number of bytes of flash on the board.
`#define WEAR_LEVELING_RP2040_FLASH_BASE` | `(flash_size-sector_size)` | The byte-wise location that the backing storage should be located.
`#define WEAR_LEVELING_LOGICAL_SIZE` | `4096` | Number of bytes "exposed" to the rest of QMK and denotes the size of the usable EEPROM.
`#define WEAR_LEVELING_LOGICAL_SIZE` | `(backing_size/2)` | Number of bytes "exposed" to the rest of QMK and denotes the size of the usable EEPROM.
`#define WEAR_LEVELING_BACKING_SIZE` | `8192` | Number of bytes used by the wear-leveling algorithm for its underlying storage, and needs to be a multiple of the logical size as well as the sector size.
`#define BACKING_STORE_WRITE_SIZE` | `2` | The write width used whenever a write is performed on the external flash peripheral.

View File

@@ -180,18 +180,18 @@ For more granular control, there is `get_auto_shifted_key`. The default function
bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
# ifndef NO_AUTO_SHIFT_ALPHA
case KC_A ... KC_Z:
case AUTO_SHIFT_ALPHA:
# endif
# ifndef NO_AUTO_SHIFT_NUMERIC
case KC_1 ... KC_0:
case AUTO_SHIFT_NUMERIC:
# endif
# ifndef NO_AUTO_SHIFT_SPECIAL
# ifndef NO_AUTO_SHIFT_TAB
# ifndef NO_AUTO_SHIFT_TAB
case KC_TAB:
# endif
# ifndef NO_AUTO_SHIFT_SYMBOLS
# endif
# ifndef NO_AUTO_SHIFT_SYMBOLS
case AUTO_SHIFT_SYMBOLS:
# endif
# endif
# endif
# ifdef AUTO_SHIFT_ENTER
case KC_ENT:
@@ -310,10 +310,16 @@ generating taps on release. For example:
#define RETRO_SHIFT 500
```
Without a value set, holds of any length without an interrupting key will produce the shifted value.
This value (if set) must be greater than one's `TAPPING_TERM`, as the key press
must be designated as a 'hold' by `process_tapping` before we send the modifier.
[Per-key tapping terms](tap_hold.md#tapping-term) can be used as a workaround.
There is no such limitation in regards to `AUTO_SHIFT_TIMEOUT` for normal keys.
**Note:** Tap Holds must be added to Auto Shift, see [here.](feature_auto_shift.md#auto-shift-per-key)
`IS_RETRO` may be helpful if one wants all Tap Holds retro shifted.
### Retro Shift and Tap Hold Configurations
Tap Hold Configurations work a little differently when using Retro Shift.

View File

@@ -37,8 +37,9 @@ Add the following to your `config.h`:
|`BREATHING_PERIOD` |`6` |The length of one backlight "breath" in seconds |
|`BACKLIGHT_ON_STATE` |`1` |The state of the backlight pin when the backlight is "on" - `1` for high, `0` for low |
|`BACKLIGHT_LIMIT_VAL` |`255` |The maximum duty cycle of the backlight -- `255` allows for full brightness, any lower will decrease the maximum.|
|`BACKLIGHT_DEFAULT_ON` |`true` |Enable backlight upon clearing the EEPROM |
|`BACKLIGHT_DEFAULT_BREATHING`|`false` |Whether to enable backlight breathing upon clearing the EEPROM |
|`BACKLIGHT_DEFAULT_LEVEL` |`BACKLIGHT_LEVELS`|The default backlight level to use upon clearing the EEPROM |
|`BACKLIGHT_DEFAULT_BREATHING`|*Not defined* |Whether to enable backlight breathing upon clearing the EEPROM |
Unless you are designing your own keyboard, you generally should not need to change the `BACKLIGHT_PIN` or `BACKLIGHT_ON_STATE`.
@@ -172,11 +173,13 @@ Depending on the ChibiOS board configuration, you may need to enable PWM at the
The following `#define`s apply only to the `pwm` driver:
|Define |Default |Description |
|-----------------------|--------|-----------------------------------|
|`BACKLIGHT_PWM_DRIVER` |`PWMD4` |The PWM driver to use |
|`BACKLIGHT_PWM_CHANNEL`|`3` |The PWM channel to use |
|`BACKLIGHT_PAL_MODE` |`2` |The pin alternative function to use|
|Define |Default |Description |
|-----------------------|-------------|---------------------------------------------------------------|
|`BACKLIGHT_PWM_DRIVER` |`PWMD4` |The PWM driver to use |
|`BACKLIGHT_PWM_CHANNEL`|`3` |The PWM channel to use |
|`BACKLIGHT_PAL_MODE` |`2` |The pin alternative function to use |
|`BACKLIGHT_PWM_PERIOD` |*Not defined*|The PWM period in counter ticks - Default is platform dependent|
Refer to the ST datasheet for your particular MCU to determine these values. For example, these defaults are set up for pin `B8` on a Proton-C (STM32F303) using `TIM4_CH3` on AF2. Unless you are designing your own keyboard, you generally should not need to change them.

View File

@@ -1,8 +1,8 @@
# Bootmagic Lite :id=bootmagic-lite
# Bootmagic :id=bootmagic
The Bootmagic Lite feature that only handles jumping into the bootloader. This is great for boards that don't have a physical reset button, giving you a way to jump into the bootloader
The Bootmagic feature that only handles jumping into the bootloader. This is great for boards that don't have a physical reset button, giving you a way to jump into the bootloader
On some keyboards Bootmagic Lite is disabled by default. If this is the case, it must be explicitly enabled in your `rules.mk` with:
On some keyboards Bootmagic is disabled by default. If this is the case, it must be explicitly enabled in your `rules.mk` with:
```make
BOOTMAGIC_ENABLE = yes
@@ -11,15 +11,15 @@ BOOTMAGIC_ENABLE = yes
Additionally, you may want to specify which key to use. This is especially useful for keyboards that have unusual matrices. To do so, you need to specify the row and column of the key that you want to use. Add these entries to your `config.h` file:
```c
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 1
#define BOOTMAGIC_ROW 0
#define BOOTMAGIC_COLUMN 1
```
By default, these are set to 0 and 0, which is usually the "ESC" key on a majority of keyboards.
And to trigger the bootloader, you hold this key down when plugging the keyboard in. Just the single key.
!> Using Bootmagic Lite will **always reset** the EEPROM, so you will lose any settings that have been saved.
!> Using Bootmagic will **always reset** the EEPROM, so you will lose any settings that have been saved.
## Split Keyboards
@@ -44,35 +44,35 @@ When [handedness](feature_split_keyboard.md#setting-handedness) is predetermined
}
```
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:
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 trigger, add these entries to your `config.h` file:
```c
#define BOOTMAGIC_LITE_ROW_RIGHT 4
#define BOOTMAGIC_LITE_COLUMN_RIGHT 4
#define BOOTMAGIC_ROW_RIGHT 4
#define BOOTMAGIC_COLUMN_RIGHT 4
```
?> These values are not set by default.
## Advanced Bootmagic Lite
## Advanced Bootmagic
The `bootmagic_lite` function is defined weakly, so that you can replace this in your code, if you need. A great example of this is the Zeal60 boards that have some additional handling needed.
The `bootmagic_scan` function is defined weakly, so that you can replace this in your code, if you need. A great example of this is the Zeal60 boards that have some additional handling needed.
To replace the function, all you need to do is add something like this to your code:
```c
void bootmagic_lite(void) {
void bootmagic_scan(void) {
matrix_scan();
wait_ms(DEBOUNCE * 2);
matrix_scan();
if (matrix_get_row(BOOTMAGIC_LITE_ROW) & (1 << BOOTMAGIC_LITE_COLUMN)) {
if (matrix_get_row(BOOTMAGIC_ROW) & (1 << BOOTMAGIC_COLUMN)) {
// Jump to bootloader.
bootloader_jump();
}
}
```
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.
You can define additional logic here. For instance, resetting the EEPROM or requiring additional keys to be pressed to trigger Bootmagic. Keep in mind that `bootmagic_scan` is called before a majority of features are initialized in the firmware.
## Addenda

View File

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

View File

@@ -1,12 +1,10 @@
# Converters
Since many drop-in replacement controllers now exist, we've done our best to make them easy to use in existing designs.
This page documents the automated process for converting keyboards to use drop-in replacement controllers. This process is designed to be easy to use and can be completed in a few simple steps.
This page documents the handy automated process for converting keyboards.
## Supported Converters
### Supported Converters
Currently the following converters are available:
The following converters are available at this time:
| From | To |
|------------|-------------------|
@@ -21,6 +19,7 @@ Currently the following converters are available:
| `promicro` | `elite_pi` |
| `promicro` | `helios` |
| `promicro` | `liatris` |
| `promicro` | `imera` |
| `promicro` | `michi` |
| `elite_c` | `stemcell` |
| `elite_c` | `rp2040_ce` |
@@ -28,14 +27,10 @@ Currently the following converters are available:
| `elite_c` | `helios` |
| `elite_c` | `liatris` |
See below for more in depth information on each converter.
## Overview
Each converter category is broken down by its declared `pin compatibility`.
This ensures that only valid combinations are attempted.
You can generate the firmware by appending `-e CONVERT_TO=<target>` to your compile/flash command. For example:
Each converter category is broken down by its declared `pin compatibility`. This ensures that only valid combinations are attempted. You can generate the firmware by appending `-e CONVERT_TO=<target>` to your compile/flash command. For example:
```sh
qmk flash -c -kb keebio/bdn9/rev1 -km default -e CONVERT_TO=proton_c
@@ -59,14 +54,12 @@ Once a converter is enabled, it exposes the `CONVERT_TO_<target_uppercase>` flag
### Pin Compatibility
To ensure compatibility, provide validation, and power future workflows, a keyboard should declare its `pin compatibility`. For legacy reasons, this is currently assumed to be `promicro`.
To ensure compatibility, provide validation, and enable future workflows, a keyboard should declare its `pin compatibility`. For legacy reasons, this is currently assumed to be `promicro`. The following pin compatibility interfaces are currently defined:
Currently the following pin compatibility interfaces are defined:
| Pinout | Notes |
|------------|-----------------------------------|
| `promicro` | Includes RX/TX LEDs |
| `elite_c` | Includes bottom row pins, no LEDs |
| Pin Compatibility | Notes |
|-------------------|-----------------------------------|
| `promicro` | Includes RX/TX LEDs |
| `elite_c` | Includes bottom row pins, no LEDs |
To declare the base for conversions, add this line to your keyboard's `rules.mk`:
@@ -90,6 +83,7 @@ If a board currently supported in QMK uses a [Pro Micro](https://www.sparkfun.co
| [Elite-Pi](https://keeb.io/products/elite-pi-usb-c-pro-micro-replacement-rp2040) | `elite_pi` |
| [0xCB Helios](https://keeb.supply/products/0xcb-helios) | `helios` |
| [Liatris](https://splitkb.com/products/liatris) | `liatris` |
| [Imera](https://splitkb.com/products/imera) | `imera` |
| [Michi](https://github.com/ci-bus/michi-promicro-rp2040) | `michi` |
Converter summary:
@@ -107,6 +101,7 @@ Converter summary:
| `elite_pi` | `-e CONVERT_TO=elite_pi` | `CONVERT_TO=elite_pi` | `#ifdef CONVERT_TO_ELITE_PI` |
| `helios` | `-e CONVERT_TO=helios` | `CONVERT_TO=helios` | `#ifdef CONVERT_TO_HELIOS` |
| `liatris` | `-e CONVERT_TO=liatris` | `CONVERT_TO=liatris` | `#ifdef CONVERT_TO_LIATRIS` |
| `imera` | `-e CONVERT_TO=imera` | `CONVERT_TO=imera` | `#ifdef CONVERT_TO_IMERA` |
| `michi` | `-e CONVERT_TO=michi` | `CONVERT_TO=michi` | `#ifdef CONVERT_TO_MICHI` |
### Proton C :id=proton_c
@@ -140,7 +135,7 @@ The following defaults are based on what has been implemented for [RP2040](platf
### SparkFun Pro Micro - RP2040, Blok, Bit-C PRO and Michi :id=promicro_rp2040
Currently identical to [Adafruit KB2040](#kb2040).
Feature set is identical to [Adafruit KB2040](#kb2040).
### STeMCell :id=stemcell
@@ -150,9 +145,7 @@ There are two versions of STeMCell available, with different pinouts:
- v2.0.0 (pre-release v1.0.1, v1.0.2)
Default official firmware only supports v2.0.0 STeMCell.
STeMCell has support to swap UART and I2C pins, to enable single-wire uart communication in STM chips.
The following additional flags has to be used while compiling, based on the pin used for split communication.
STeMCell has support to swap UART and I2C pins to enable single-wire uart communication in STM chips. The following additional flags has to be used while compiling, based on the pin used for split communication:
| Split Pin | Compile flags |
|-----------|---------------|
@@ -173,11 +166,8 @@ The Bonsai C4 only has one on-board LED (B2), and by default, both the Pro Micro
### RP2040 Community Edition - Elite-Pi, Helios, and Liatris :id=rp2040_ce
Feature set currently identical to [Adafruit KB2040](#kb2040).
Feature set is identical to [Adafruit KB2040](#kb2040). VBUS detection is enabled by default for superior split keyboard support. For more information, refer to the [Community Edition pinout](platformdev_rp2040.md#rp2040_ce) docs.
Enables VBUS detection by default for superior split keyboard support.
For more information, refer to the [RP2040 Community Edition](platformdev_rp2040.md#rp2040_ce) docs.
## Elite-C
@@ -202,8 +192,8 @@ Converter summary:
### STeMCell :id=stemcell_elite
Currently identical to [STeMCell](#stemcell) with support for the additional bottom row of pins.
Identical to [Pro Micro - STeMCell](#stemcell) with support for the additional bottom row of pins.
### RP2040 Community Edition :id=rp2040_ce_elite
Currently identical to [RP2040 Community Edition](#rp2040_ce), with support for the additional bottom row of pins.
Identical to [Pro Micro - RP2040 Community Edition](#rp2040_ce) with support for the additional bottom row of pins.

View File

@@ -20,6 +20,27 @@ or
#define DIP_SWITCH_MATRIX_GRID { {0,6}, {1,6}, {2,6} } // List of row and col pairs
```
## DIP Switch map :id=dip-switch-map
DIP Switch mapping may be added to your `keymap.c`, which replicates the normal keyswitch functionality, but with dip switches. Add this to your keymap's `rules.mk`:
```make
DIP_SWITCH_MAP_ENABLE = yes
```
Your `keymap.c` will then need a dip switch mapping defined (for two dip switches):
```c
#if defined(DIP_SWITCH_MAP_ENABLE)
const uint16_t PROGMEM dip_switch_map[NUM_DIP_SWITCHES][NUM_DIP_STATES] = {
DIP_SWITCH_OFF_ON(DF(0), DF(1)),
DIP_SWITCH_OFF_ON(EC_NORM, EC_SWAP)
};
#endif
```
?> This should only be enabled at the keymap level.
## Callbacks
The callback functions can be inserted into your `<keyboard>.c`:

View File

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

View File

@@ -50,10 +50,6 @@ Axes can be configured using one of the following macros:
* `JOYSTICK_AXIS_IN(input_pin, low, rest, high)`
The ADC samples the provided pin. `low`, `high` and `rest` correspond to the minimum, maximum, and resting (or centered) analog values of the axis, respectively.
* `JOYSTICK_AXIS_IN_OUT(input_pin, output_pin, low, rest, high)`
Same as `JOYSTICK_AXIS_IN()`, but the provided `output_pin` will be pulled high before `input_pin` is read.
* `JOYSTICK_AXIS_IN_OUT_GROUND(input_pin, output_pin, ground_pin, low, rest, high)`
Same as `JOYSTICK_AXIS_IN_OUT()`, but the provided `ground_pin` will be pulled low before reading from `input_pin`.
* `JOYSTICK_AXIS_VIRTUAL`
No ADC reading is performed. The value should be provided by user code.
@@ -160,12 +156,8 @@ Describes a single axis.
#### Members :id=api-joystick-config-t-members
- `pin_t output_pin`
A pin to set as output high when reading the analog value, or `JS_VIRTUAL_AXIS`.
- `pin_t input_pin`
The pin to read the analog value from, or `JS_VIRTUAL_AXIS`.
- `pin_t ground_pin`
A pin to set as output low when reading the analog value, or `JS_VIRTUAL_AXIS`.
- `uint16_t min_digit`
The minimum analog value.
- `uint16_t mid_digit`

View File

@@ -21,7 +21,7 @@ Then, in your `keymap.c` file, you'll need to define the array `key_overrides`,
The `key_override_t` struct has many options that allow you to precisely tune your overrides. The full reference is shown below. Instead of manually creating a `key_override_t` value, it is recommended to use these dedicated initializers:
#### `ko_make_basic(modifiers, key, replacement)`
Returns a `key_override_t`, which sends `replacement` (can be a key-modifer combination), when `key` and `modifiers` are all pressed down. This override still activates if any additional modifiers not specified in `modifiers` are also pressed down. See `ko_make_with_layers_and_negmods` to customize this behavior.
Returns a `key_override_t`, which sends `replacement` (can be a key-modifier combination), when `key` and `modifiers` are all pressed down. This override still activates if any additional modifiers not specified in `modifiers` are also pressed down. See `ko_make_with_layers_and_negmods` to customize this behavior.
#### `ko_make_with_layers(modifiers, key, replacement, layers)`
Additionally takes a bitmask `layers` that defines on which layers the override is used.
@@ -224,7 +224,7 @@ The duration of the key repeat delay is controlled with the `KEY_OVERRIDE_REPEAT
## Difference to Combos :id=difference-to-combos
Note that key overrides are very different from [combos](https://docs.qmk.fm/#/feature_combo). Combos require that you press down several keys almost _at the same time_ and can work with any combination of non-modifier keys. Key overrides work like keyboard shortcuts (e.g. `ctrl` + `z`): They take combinations of _multiple_ modifiers and _one_ non-modifier key to then perform some custom action. Key overrides are implemented with much care to behave just like normal keyboard shortcuts would in regards to the order of pressed keys, timing, and interacton with other pressed keys. There are a number of optional settings that can be used to really fine-tune the behavior of each key override as well. Using key overrides also does not delay key input for regular key presses, which inherently happens in combos and may be undesirable.
Note that key overrides are very different from [combos](https://docs.qmk.fm/#/feature_combo). Combos require that you press down several keys almost _at the same time_ and can work with any combination of non-modifier keys. Key overrides work like keyboard shortcuts (e.g. `ctrl` + `z`): They take combinations of _multiple_ modifiers and _one_ non-modifier key to then perform some custom action. Key overrides are implemented with much care to behave just like normal keyboard shortcuts would in regards to the order of pressed keys, timing, and interaction with other pressed keys. There are a number of optional settings that can be used to really fine-tune the behavior of each key override as well. Using key overrides also does not delay key input for regular key presses, which inherently happens in combos and may be undesirable.
## Solution to the problem of flashing modifiers :id=neutralize-flashing-modifiers

View File

@@ -56,16 +56,16 @@ This is a template indicator function that can be implemented on keyboard level
bool led_update_kb(led_t led_state) {
bool res = led_update_user(led_state);
if(res) {
// writePin sets the pin high for 1 and low for 0.
// gpio_write_pin sets the pin high for 1 and low for 0.
// In this example the pins are inverted, setting
// it low/0 turns it on, and high/1 turns the LED off.
// This behavior depends on whether the LED is between the pin
// and VCC or the pin and GND.
writePin(B0, !led_state.num_lock);
writePin(B1, !led_state.caps_lock);
writePin(B2, !led_state.scroll_lock);
writePin(B3, !led_state.compose);
writePin(B4, !led_state.kana);
gpio_write_pin(B0, !led_state.num_lock);
gpio_write_pin(B1, !led_state.caps_lock);
gpio_write_pin(B2, !led_state.scroll_lock);
gpio_write_pin(B3, !led_state.compose);
gpio_write_pin(B4, !led_state.kana);
}
return res;
}

View File

@@ -19,14 +19,13 @@ You can use between 1 and 4 IS31FL3731 IC's. Do not specify `LED_DRIVER_ADDR_<N>
| Variable | Description | Default |
|----------|-------------|---------|
| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
| `LED_DRIVER_COUNT` | (Required) How many LED driver IC's are present | |
| `IS31FL3731_I2C_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
| `IS31FL3731_I2C_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
| `LED_MATRIX_LED_COUNT` | (Required) How many LED lights are present across all drivers | |
| `LED_DRIVER_ADDR_1` | (Required) Address for the first LED driver | |
| `LED_DRIVER_ADDR_2` | (Optional) Address for the second LED driver | |
| `LED_DRIVER_ADDR_3` | (Optional) Address for the third LED driver | |
| `LED_DRIVER_ADDR_4` | (Optional) Address for the fourth LED driver | |
| `IS31FL3731_I2C_ADDRESS_1` | (Required) Address for the first LED driver | |
| `IS31FL3731_I2C_ADDRESS_2` | (Optional) Address for the second LED driver | |
| `IS31FL3731_I2C_ADDRESS_3` | (Optional) Address for the third LED driver | |
| `IS31FL3731_I2C_ADDRESS_4` | (Optional) Address for the fourth LED driver | |
Here is an example using 2 drivers.
@@ -34,14 +33,15 @@ Here is an example using 2 drivers.
// This is a 7-bit address, that gets left-shifted and bit 0
// set to 0 for write, 1 for read (as per I2C protocol)
// The address will vary depending on your wiring:
// 0b1110100 AD <-> GND
// 0b1110111 AD <-> VCC
// 0b1110101 AD <-> SCL
// 0b1110110 AD <-> SDA
#define LED_DRIVER_ADDR_1 0b1110100
#define LED_DRIVER_ADDR_2 0b1110110
// 00 AD <-> GND
// 01 AD <-> SCL
// 10 AD <-> SDA
// 11 AD <-> VCC
// ADDR represents A1:A0 of the 7-bit address.
// The result is: 0b11101(ADDR)
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
#define LED_DRIVER_COUNT 2
#define LED_DRIVER_1_LED_TOTAL 25
#define LED_DRIVER_2_LED_TOTAL 24
#define LED_MATRIX_LED_COUNT (LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL)
@@ -49,12 +49,12 @@ Here is an example using 2 drivers.
!> Note the parentheses, this is so when `LED_MATRIX_LED_COUNT` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL)` will give very different results than `rand() % LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL`.
For split keyboards using `LED_MATRIX_SPLIT` with an LED driver, you can either have the same driver address or different driver addresses. If using different addresses, use `DRIVER_ADDR_1` for one and `DRIVER_ADDR_2` for the other one. Then, in `g_is31_leds`, fill out the correct driver index (0 or 1). If using one address, use `DRIVER_ADDR_1` for both, and use index 0 for `g_is31_leds`.
For split keyboards using `LED_MATRIX_SPLIT` with an LED driver, you can either have the same driver address or different driver addresses. If using different addresses, use `IS31FL3731_I2C_ADDRESS_1` for one and `IS31FL3731_I2C_ADDRESS_2` for the other one. Then, in `g_is31fl3731_leds`, fill out the correct driver index (0 or 1). If using one address, use `IS31FL3731_I2C_ADDRESS_1` for both, and use index 0 for `g_is31fl3731_leds`.
Define these arrays listing all the LEDs in your `<keyboard>.c`:
```c
const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = {
const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | LED address
@@ -65,7 +65,7 @@ const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = {
}
```
Where `Cx_y` is the location of the LED in the matrix defined by [the datasheet](https://www.issi.com/WW/pdf/31FL3731.pdf) and the header file `drivers/led/issi/is31fl3731-simple.h`. The `driver` is the index of the driver you defined in your `config.h` (`0`, `1`, `2`, or `3` ).
Where `Cx_y` is the location of the LED in the matrix defined by [the datasheet](https://www.issi.com/WW/pdf/31FL3731.pdf) and the header file `drivers/led/issi/is31fl3731-mono.h`. The `driver` is the index of the driver you defined in your `config.h` (`0`, `1`, `2`, or `3` ).
---
### IS31FLCOMMON :id=is31flcommon
@@ -94,7 +94,6 @@ Configure the hardware via your `config.h`:
|----------|-------------|---------|
| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
| `DRIVER_COUNT` | (Required) How many LED driver IC's are present | |
| `LED_MATRIX_LED_COUNT` | (Required) How many LED lights are present across all drivers | |
| `DRIVER_ADDR_1` | (Optional) Address for the first LED driver | |
| `DRIVER_ADDR_<N>` | (Required) Address for the additional LED drivers | |
@@ -127,7 +126,6 @@ Here is an example using 2 drivers.
```c
#define DRIVER_ADDR_2 0b0100001
#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 66
#define DRIVER_2_LED_TOTAL 42
#define LED_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
@@ -144,8 +142,8 @@ const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = {
* driver
* | LED address
* | | */
{ 0, CS1_SW1 },
{ 0, CS2_SW1 },
{ 0, SW1_CS1 },
{ 0, SW1_CS2 },
// ...
}
```
@@ -159,7 +157,7 @@ Then Define the array listing all the LEDs you want to override in your `<keyboa
```c
const is31_led PROGMEM g_is31_scaling[ISSI_MANUAL_SCALING] = {
* LED Index
/* LED Index
* | Scaling
* | | */
{5, 120},
@@ -248,16 +246,16 @@ enum led_matrix_effects {
LED_MATRIX_CYCLE_OUT_IN, // Full gradient scrolling out to in
LED_MATRIX_DUAL_BEACON, // Full gradient spinning around center of keyboard
LED_MATRIX_SOLID_REACTIVE_SIMPLE, // Pulses keys hit then fades out
LED_MATRIX_SOLID_REACTIVE_WIDE // Value pulses near a single key hit then fades out
LED_MATRIX_SOLID_REACTIVE_MULTIWIDE // Value pulses near multiple key hits then fades out
LED_MATRIX_SOLID_REACTIVE_CROSS // Value pulses the same column and row of a single key hit then fades out
LED_MATRIX_SOLID_REACTIVE_MULTICROSS // Value pulses the same column and row of multiple key hits then fades out
LED_MATRIX_SOLID_REACTIVE_NEXUS // Value pulses away on the same column and row of a single key hit then fades out
LED_MATRIX_SOLID_REACTIVE_MULTINEXUS // Value pulses away on the same column and row of multiple key hits then fades out
LED_MATRIX_SOLID_REACTIVE_WIDE, // Value pulses near a single key hit then fades out
LED_MATRIX_SOLID_REACTIVE_MULTIWIDE, // Value pulses near multiple key hits then fades out
LED_MATRIX_SOLID_REACTIVE_CROSS, // Value pulses the same column and row of a single key hit then fades out
LED_MATRIX_SOLID_REACTIVE_MULTICROSS, // Value pulses the same column and row of multiple key hits then fades out
LED_MATRIX_SOLID_REACTIVE_NEXUS, // Value pulses away on the same column and row of a single key hit then fades out
LED_MATRIX_SOLID_REACTIVE_MULTINEXUS, // Value pulses away on the same column and row of multiple key hits then fades out
LED_MATRIX_SOLID_SPLASH, // Value pulses away from a single key hit then fades out
LED_MATRIX_SOLID_MULTISPLASH, // Value pulses away from multiple key hits then fades out
LED_MATRIX_WAVE_LEFT_RIGHT // Sine wave scrolling from left to right
LED_MATRIX_WAVE_UP_DOWN // Sine wave scrolling from up to down
LED_MATRIX_WAVE_LEFT_RIGHT, // Sine wave scrolling from left to right
LED_MATRIX_WAVE_UP_DOWN, // Sine wave scrolling from up to down
LED_MATRIX_EFFECT_MAX
};
```
@@ -359,13 +357,15 @@ For inspiration and examples, check out the built-in effects under `quantum/led_
```c
#define LED_MATRIX_KEYRELEASES // reactive effects respond to keyreleases (instead of keypresses)
#define LED_MATRIX_TIMEOUT 0 // number of milliseconds to wait until led automatically turns off
#define LED_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
#define LED_MATRIX_SLEEP // turn off effects when suspended
#define LED_MATRIX_LED_PROCESS_LIMIT (LED_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
#define LED_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
#define LED_MATRIX_MAXIMUM_BRIGHTNESS 255 // limits maximum brightness of LEDs
#define LED_MATRIX_DEFAULT_ON true // Sets the default enabled state, if none has been set
#define LED_MATRIX_DEFAULT_MODE LED_MATRIX_SOLID // Sets the default mode, if none has been set
#define LED_MATRIX_DEFAULT_VAL LED_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set
#define LED_MATRIX_DEFAULT_SPD 127 // Sets the default animation speed, if none has been set
#define LED_MATRIX_DEFAULT_FLAGS LED_FLAG_ALL // Sets the default LED flags, if none has been set
#define LED_MATRIX_SPLIT { X, Y } // (Optional) For split keyboards, the number of LEDs connected on each half. X = left, Y = Right.
// If reactive effects are enabled, you also will want to enable SPLIT_TRANSPORT_MIRROR
```

View File

@@ -69,9 +69,9 @@ The current list of available languages is:
| **italian_osx_iso** | **jis** | **latvian** | **lithuanian_azerty** |
| **lithuanian_qwerty** | **norman** | **norwegian** | **portuguese** |
| **portuguese_osx_iso** | **romanian** | **serbian_latin** | **slovak** |
| **slovenian** | **spanish_dvorak** | **spanish** | **swedish** |
| **turkish_f** | **turkish_q** | **uk** | **us_international** |
| **workman** | **workman_zxcvm** |
| **slovenian** | **spanish_dvorak** | **spanish_latin_america** | **spanish** |
| **swedish** | **turkish_f** | **turkish_q** | **uk** |
| **us_international** | **workman** | **workman_zxcvm** |
### Macro Basics

View File

@@ -10,6 +10,7 @@ Tested combinations:
|SSD1306 |128x32 |AVR |Primary support |
|SSD1306 |128x64 |AVR |Verified working |
|SSD1306 |128x32 |Arm | |
|SSD1306 |128x64 |Arm |Verified working |
|SH1106 |128x64 |AVR |No scrolling |
|SH1107 |64x128 |AVR |No scrolling |
|SH1107 |64x128 |Arm |No scrolling |
@@ -166,6 +167,28 @@ bool oled_task_user(void) {
#endif
```
Render a message before booting into bootloader mode.
```c
void oled_render_boot(bool bootloader) {
oled_clear();
for (int i = 0; i < 16; i++) {
oled_set_cursor(0, i);
if (bootloader) {
oled_write_P(PSTR("Awaiting New Firmware "), false);
} else {
oled_write_P(PSTR("Rebooting "), false);
}
}
oled_render_dirty(true);
}
bool shutdown_user(bool jump_to_bootloader) {
oled_render_boot(jump_to_bootloader);
}
```
## Basic Configuration
These configuration options should be placed in `config.h`. Example:
@@ -190,7 +213,7 @@ These configuration options should be placed in `config.h`. Example:
|`OLED_SCROLL_TIMEOUT_RIGHT`|*Not defined* |Scroll timeout direction is right when defined, left when undefined. |
|`OLED_TIMEOUT` |`60000` |Turns off the OLED screen after 60000ms of screen update inactivity. Helps reduce OLED Burn-in. Set to 0 to disable. |
|`OLED_UPDATE_INTERVAL` |`0` (`50` for split keyboards) |Set the time interval for updating the OLED display in ms. This will improve the matrix scan rate. |
|`OLED_UPDATE_PROCESS_LIMIT'|`1` |Set the number of dirty blocks to render per loop. Increasing may degrade performance. |
|`OLED_UPDATE_PROCESS_LIMIT`|`1` |Set the number of dirty blocks to render per loop. Increasing may degrade performance. |
### I2C Configuration
|Define |Default |Description |
@@ -275,7 +298,7 @@ Rotation on SH1106 and SH1107 is noticeably less efficient than on SSD1306, beca
## OLED API
```c
// OLED rotation enum values are flags
// OLED Rotation enum values are flags
typedef enum {
OLED_ROTATION_0 = 0,
OLED_ROTATION_90 = 1,
@@ -283,7 +306,7 @@ typedef enum {
OLED_ROTATION_270 = 3, // OLED_ROTATION_90 | OLED_ROTATION_180
} oled_rotation_t;
// Initialize the OLED display, rotating the rendered output based on the define passed in.
// Initialize the oled display, rotating the rendered output based on the define passed in.
// Returns true if the OLED was initialized successfully
bool oled_init(oled_rotation_t rotation);
@@ -301,8 +324,12 @@ bool oled_send_data(const uint8_t *data, uint16_t size);
// Clears the display buffer, resets cursor position to 0, and sets the buffer to dirty for rendering
void oled_clear(void);
// Renders the dirty chunks of the buffer to OLED display
void oled_render(void);
// Alias to oled_render_dirty to avoid a change in api.
#define oled_render() oled_render_dirty(false)
// Renders all dirty blocks to the display at one time or a subset depending on the value of
// all.
void oled_render_dirty(bool all);
// Moves cursor to character position indicated by column and line, wraps if out of bounds
// Max column denoted by 'oled_max_chars()' and max lines by 'oled_max_lines()' functions
@@ -333,8 +360,6 @@ void oled_write_ln(const char *data, bool invert);
// Pans the buffer to the right (or left by passing true) by moving contents of the buffer
// Useful for moving the screen in preparation for new drawing
// oled_scroll_left or oled_scroll_right should be preferred for all cases of moving a static
// image such as a logo or to avoid burn-in as it's much, much less cpu intensive
void oled_pan(bool left);
// Returns a pointer to the requested start index in the buffer plus remaining
@@ -351,6 +376,7 @@ void oled_write_raw_byte(const char data, uint16_t index);
// Coordinates start at top-left and go right and down for positive x and y
void oled_write_pixel(uint8_t x, uint8_t y, bool on);
#if defined(__AVR__)
// Writes a PROGMEM string to the buffer at current cursor position
// Advances the cursor while writing, inverts the pixels if true
// Remapped to call 'void oled_write(const char *data, bool invert);' on ARM
@@ -364,6 +390,11 @@ void oled_write_ln_P(const char *data, bool invert);
// Writes a PROGMEM string to the buffer at current cursor position
void oled_write_raw_P(const char *data, uint16_t size);
#else
# define oled_write_P(data, invert) oled_write(data, invert)
# define oled_write_ln_P(data, invert) oled_write_ln(data, invert)
# define oled_write_raw_P(data, size) oled_write_raw(data, size)
#endif // defined(__AVR__)
// Can be used to manually turn on the screen if it is off
// Returns true if the screen was on or turns on
@@ -398,7 +429,7 @@ void oled_scroll_set_area(uint8_t start_line, uint8_t end_line);
// Sets scroll speed, 0-7, fastest to slowest. Default is three.
// Does not take effect until scrolling is either started or restarted
// the ssd1306 supports 8 speeds with the delay
// listed below betwen each frame of the scrolling effect
// listed below between each frame of the scrolling effect
// 0=2, 1=3, 2=4, 3=5, 4=25, 5=64, 6=128, 7=256
void oled_scroll_set_speed(uint8_t speed);

View File

@@ -14,7 +14,7 @@ In your `rules.mk` add:
OS_DETECTION_ENABLE = yes
```
Include `"os_detection.h"` in your `keymap.c`.
It will automatically include the required headers file.
It declares `os_variant_t detected_host_os(void);` which you can call to get detected OS.
It returns one of the following values:
@@ -32,14 +32,67 @@ enum {
?> Note that it takes some time after firmware is booted to detect the OS.
This time is quite short, probably hundreds of milliseconds, but this data may be not ready in keyboard and layout setup functions which run very early during firmware startup.
## Callbacks :id=callbacks
If you want to perform custom actions when the OS is detected, then you can use the `process_detected_host_os_kb` function on the keyboard level source file, or `process_detected_host_os_user` function in the user `keymap.c`.
```c
bool process_detected_host_os_kb(os_variant_t detected_os) {
if (!process_detected_host_os_user(detected_os)) {
return false;
}
switch (detected_os) {
case OS_MACOS:
case OS_IOS:
rgb_matrix_set_color_all(RGB_WHITE);
break;
case OS_WINDOWS:
rgb_matrix_set_color_all(RGB_BLUE);
break;
case OS_LINUX:
rgb_matrix_set_color_all(RGB_ORANGE);
break;
case OS_UNSURE:
rgb_matrix_set_color_all(RGB_RED);
break;
}
return true;
}
```
## OS detection stability
The OS detection is currently handled while the USB device descriptor is being assembled.
The process is done in steps, generating a number of intermediate results until it stabilizes.
We therefore resort to debouncing the result until it has been stable for a given amount of milliseconds.
This amount can be configured, in case your board is not stable within the default debouncing time of 200ms.
## KVM and USB switches
Some KVM and USB switches may not trigger the USB controller on the keyboard to fully reset upon switching machines.
If your keyboard does not redetect the OS in this situation, you can force the keyboard to reset when the USB initialization event is detected, forcing the USB controller to be reconfigured.
## Configuration Options
* `#define OS_DETECTION_DEBOUNCE 200`
* defined the debounce time for OS detection, in milliseconds
* `#define OS_DETECTION_KEYBOARD_RESET`
* enables the keyboard reset upon a USB device reinitilization, such as switching devices on some KVMs
## Debug
If OS is guessed incorrectly, you may want to collect data about USB setup packets to refine the detection logic.
To do so in your `rules.mk` add:
To do so in your `config.h` add:
```c
#define OS_DETECTION_DEBUG_ENABLE
```
And in your `rules.mk` add:
```make
OS_DETECTION_DEBUG_ENABLE = yes
CONSOLE_ENABLE = yes
```

View File

@@ -69,10 +69,94 @@ The Analog Joystick is an analog (ADC) driven sensor. There are a variety of jo
| `ANALOG_JOYSTICK_Y_AXIS_PIN` | (Required) The pin used for the horizontal/Y axis. | _not defined_ |
| `ANALOG_JOYSTICK_AXIS_MIN` | (Optional) Sets the lower range to be considered movement. | `0` |
| `ANALOG_JOYSTICK_AXIS_MAX` | (Optional) Sets the upper range to be considered movement. | `1023` |
| `ANALOG_JOYSTICK_AUTO_AXIS` | (Optional) Sets ranges to be considered movement automatically. | _not defined_ |
| `ANALOG_JOYSTICK_SPEED_REGULATOR` | (Optional) The divisor used to slow down movement. (lower makes it faster) | `20` |
| `ANALOG_JOYSTICK_READ_INTERVAL` | (Optional) The interval in milliseconds between reads. | `10` |
| `ANALOG_JOYSTICK_SPEED_MAX` | (Optional) The maximum value used for motion. | `2` |
| `ANALOG_JOYSTICK_CLICK_PIN` | (Optional) The pin wired up to the press switch of the analog stick. | _not defined_ |
| `ANALOG_JOYSTICK_WEIGHTS` | (Optional) Use custom weights for lever positions. | _not defined_ |
| `ANALOG_JOYSTICK_CUTOFF` | (Optional) Cut off movement when joystick returns to start position. | _not defined_ |
If `ANALOG_JOYSTICK_AUTO_AXIS` is used, then `ANALOG_JOYSTICK_AXIS_MIN` and `ANALOG_JOYSTICK_AXIS_MAX` are ignored.
By default analog joystick implementation uses `x^2` weighting for lever positions. `ANALOG_JOYSTICK_WEIGHTS` allows to experiment with different configurations that might feel better.
E.g. This is weights for `((x-0.4)^3+0.064)/0.282`:
```c
#define ANALOG_JOYSTICK_WEIGHTS {0,2,4,5,7,8,9,10,12,13,14,15,15,16,17,18,18,19,19,20,20,21,21,21,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,25,25,25,26,26,26,27,28,28,29,29,30,31,32,33,34,35,36,37,38,40,41,43,44,46,48,49,51,53,56,58,60,62,65,68,70,73,76,79,82,85,89,92,96,100}
```
You can use following JS code to generate weights for different formulas:
```js
JSON.stringify(Array.from(Array(101).keys()).map(x => Math.ceil((((x/100-0.4)**3+0.064)/0.282*100))))
```
### Azoteq IQS5XX Trackpad
To use a Azoteq IQS5XX trackpad, add this to your `rules.mk`:
```make
POINTING_DEVICE_DRIVER = azoteq_iqs5xx
```
This supports the IQS525, IQS550 and IQS572 controllers, with the latter two being used in the TPS43 and TPS65 trackpads.
#### Device settings
Specific device profiles are provided which set the required values for dimensions and resolution.
| Setting | Description |
| -------------------------------- | ---------------------------------------------------------- |
| `AZOTEQ_IQS5XX_TPS43` | (Pick One) Sets resolution/mm to TPS43 specifications. |
| `AZOTEQ_IQS5XX_TPS65` | (Pick One) Sets resolution/mm to TPS65 specifications. |
?> If using one of the above defines you can skip to gesture settings.
| Setting | Description | Default |
| -------------------------------- | ---------------------------------------------------------- | ------------- |
| `AZOTEQ_IQS5XX_WIDTH_MM` | (Required) Width of the trackpad sensor in millimeters. | _not defined_ |
| `AZOTEQ_IQS5XX_HEIGHT_MM` | (Required) Height of the trackpad sensor in millimeters. | _not defined_ |
| `AZOTEQ_IQS5XX_RESOLUTION_X` | (Optional) Specify X resolution for CPI calculation. | _not defined_ |
| `AZOTEQ_IQS5XX_RESOLUTION_Y` | (Optional) Specify Y resolution for CPI calculation. | _not defined_ |
**`AZOTEQ_IQS5XX_RESOLUTION_X/Y`** fall back resolutions are provided within the driver based on controller model.
| I2C Setting | Description | Default |
| ------------------------- | ------------------------------------------------------------------------------- | ------- |
| `AZOTEQ_IQS5XX_ADDRESS` | (Optional) Sets the I2C Address for the Azoteq trackpad | `0xE8` |
| `AZOTEQ_IQS5XX_TIMEOUT_MS`| (Optional) The timeout for i2c communication with in milliseconds. | `10` |
#### Gesture settings
| Setting | Description | Default |
| ----------------------------------------- | ------------------------------------------------------------------------------------ | ----------- |
| `AZOTEQ_IQS5XX_TAP_ENABLE` | (Optional) Enable single finger tap. (Left click) | `true` |
| `AZOTEQ_IQS5XX_TWO_FINGER_TAP_ENABLE` | (Optional) Enable two finger tap. (Right click) | `true` |
| `AZOTEQ_IQS5XX_PRESS_AND_HOLD_ENABLE` | (Optional) Emulates holding left click to select text. | `false` |
| `AZOTEQ_IQS5XX_SWIPE_X_ENABLE` | (Optional) Enable swipe gestures X+ (Mouse Button 5) / X- (Mouse Button 4) | `false` |
| `AZOTEQ_IQS5XX_SWIPE_Y_ENABLE` | (Optional) Enable swipe gestures Y+ (Mouse Button 3) / Y- (Mouse Button 6) | `false` |
| `AZOTEQ_IQS5XX_ZOOM_ENABLE` | (Optional) Enable zoom gestures Zoom Out (Mouse Button 7) / Zoom In (Mouse Button 8) | `false` |
| `AZOTEQ_IQS5XX_SCROLL_ENABLE` | (Optional) Enable scrolling using two fingers. | `true` |
| `AZOTEQ_IQS5XX_TAP_TIME` | (Optional) Maximum time in ms for tap to be registered. | `150` |
| `AZOTEQ_IQS5XX_TAP_DISTANCE` | (Optional) Maximum deviation in pixels before single tap is no longer valid. | `25` |
| `AZOTEQ_IQS5XX_HOLD_TIME` | (Optional) Minimum time in ms for press and hold. | `300` |
| `AZOTEQ_IQS5XX_SWIPE_INITIAL_TIME` | (Optional) Maximum time to travel initial distance before swipe is registered. | `150` |
| `AZOTEQ_IQS5XX_SWIPE_INITIAL_DISTANCE` | (Optional) Minimum travel in pixels before swipe is registered. | `300` |
| `AZOTEQ_IQS5XX_SWIPE_CONSECUTIVE_TIME` | (Optional) Maximum time to travel consecutive distance before swipe is registered. | `0` |
| `AZOTEQ_IQS5XX_SWIPE_CONSECUTIVE_DISTANCE`| (Optional) Minimum travel in pixels before a consecutive swipe is registered. | `2000` |
| `AZOTEQ_IQS5XX_SCROLL_INITIAL_DISTANCE` | (Optional) Minimum travel in pixels before scroll is registered. | `50` |
| `AZOTEQ_IQS5XX_ZOOM_INITIAL_DISTANCE` | (Optional) Minimum travel in pixels before zoom is registered. | `50` |
| `AZOTEQ_IQS5XX_ZOOM_CONSECUTIVE_DISTANCE` | (Optional) Maximum time to travel zoom distance before zoom is registered. | `25` |
#### Rotation settings
| Setting | Description | Default |
| ---------------------------- | ---------------------------------------------------------- | ------------- |
| `AZOTEQ_IQS5XX_ROTATION_90` | (Optional) Configures hardware for 90 degree rotation. | _not defined_ |
| `AZOTEQ_IQS5XX_ROTATION_180` | (Optional) Configures hardware for 180 degree rotation. | _not defined_ |
| `AZOTEQ_IQS5XX_ROTATION_270` | (Optional) Configures hardware for 270 degree rotation. | _not defined_ |
### Cirque Trackpad
@@ -93,12 +177,13 @@ This supports the Cirque Pinnacle 1CA027 Touch Controller, which is used in the
#### Common settings
| Setting | Description | Default |
| -------------------------------- | ---------------------------------------------------------- | ------------------------------------------- |
| `CIRQUE_PINNACLE_DIAMETER_MM` | (Optional) Diameter of the trackpad sensor in millimeters. | `40` |
| `CIRQUE_PINNACLE_ATTENUATION` | (Optional) Sets the attenuation of the sensor data. | `EXTREG__TRACK_ADCCONFIG__ADC_ATTENUATE_4X` |
| `CIRQUE_PINNACLE_CURVED_OVERLAY` | (Optional) Applies settings tuned for curved overlay. | _not defined_ |
| `CIRQUE_PINNACLE_POSITION_MODE` | (Optional) Mode of operation. | _not defined_ |
| Setting | Description | Default |
| ------------------------------------ | ---------------------------------------------------------- | ------------------------------------------- |
| `CIRQUE_PINNACLE_DIAMETER_MM` | (Optional) Diameter of the trackpad sensor in millimeters. | `40` |
| `CIRQUE_PINNACLE_ATTENUATION` | (Optional) Sets the attenuation of the sensor data. | `EXTREG__TRACK_ADCCONFIG__ADC_ATTENUATE_4X` |
| `CIRQUE_PINNACLE_CURVED_OVERLAY` | (Optional) Applies settings tuned for curved overlay. | _not defined_ |
| `CIRQUE_PINNACLE_POSITION_MODE` | (Optional) Mode of operation. | _not defined_ |
| `CIRQUE_PINNACLE_SKIP_SENSOR_CHECK` | (Optional) Skips sensor presence check | _not defined_ |
**`CIRQUE_PINNACLE_ATTENUATION`** is a measure of how much data is suppressed in regards to sensitivity. The higher the attenuation, the less sensitive the touchpad will be.
@@ -132,12 +217,13 @@ Also see the `POINTING_DEVICE_TASK_THROTTLE_MS`, which defaults to 10ms when usi
#### Absolute mode settings
| Setting | Description | Default |
| -------------------------------- | ---------------------------------------------------------- | ------------------ |
| `CIRQUE_PINNACLE_X_LOWER` | (Optional) The minimum reachable X value on the sensor. | `127` |
| `CIRQUE_PINNACLE_X_UPPER` | (Optional) The maximum reachable X value on the sensor. | `1919` |
| `CIRQUE_PINNACLE_Y_LOWER` | (Optional) The minimum reachable Y value on the sensor. | `63` |
| `CIRQUE_PINNACLE_Y_UPPER` | (Optional) The maximum reachable Y value on the sensor. | `1471` |
| Setting | Description | Default |
|-----------------------------------------|-------------------------------------------------------------------------|-------------|
| `CIRQUE_PINNACLE_X_LOWER` | (Optional) The minimum reachable X value on the sensor. | `127` |
| `CIRQUE_PINNACLE_X_UPPER` | (Optional) The maximum reachable X value on the sensor. | `1919` |
| `CIRQUE_PINNACLE_Y_LOWER` | (Optional) The minimum reachable Y value on the sensor. | `63` |
| `CIRQUE_PINNACLE_Y_UPPER` | (Optional) The maximum reachable Y value on the sensor. | `1471` |
| `CIRQUE_PINNACLE_REACHABLE_CALIBRATION` | (Optional) Enable console messages to aide in calibrating above values. | not defined |
#### Absolute mode gestures
@@ -643,6 +729,7 @@ There are a few ways to control the auto mouse feature with both `config.h` opti
| `AUTO_MOUSE_TIME` | (Optional) Time layer remains active after activation | _ideally_ (250-1000) | _ms_ | `650 ms` |
| `AUTO_MOUSE_DELAY` | (Optional) Lockout time after non-mouse key is pressed | _ideally_ (100-1000) | _ms_ | `TAPPING_TERM` or `200 ms` |
| `AUTO_MOUSE_DEBOUNCE` | (Optional) Time delay from last activation to next update | _ideally_ (10 - 100) | _ms_ | `25 ms` |
| `AUTO_MOUSE_THRESHOLD` | (Optional) Amount of mouse movement required to switch layers | 0 - | _units_ | `10 units` |
### Adding mouse keys
@@ -735,9 +822,11 @@ layer_state_t layer_state_set_user(layer_state_t state) {
#### Set different target layer when a particular layer is active:
The below code will change the auto mouse layer target to `_MOUSE_LAYER_2` when `_DEFAULT_LAYER_2` is highest default layer state.
*NOTE: that `auto_mouse_layer_off` is used here instead of `remove_auto_mouse_layer` as `default_layer_state_set_*` stack is separate from the `layer_state_set_*` stack* if something similar was to be done in `layer_state_set_user `state = remove_auto_mouse_layer(state, false)` should be used instead
*ADDITIONAL NOTE: `AUTO_MOUSE_TARGET_LAYER` is checked if already set to avoid deactivating the target layer unless needed*
The below code will change the auto mouse layer target to `_MOUSE_LAYER_2` when `_DEFAULT_LAYER_2` is highest default layer state.
*NOTE: that `auto_mouse_layer_off` is used here instead of `remove_auto_mouse_layer` as `default_layer_state_set_*` stack is separate from the `layer_state_set_*` stack*, if something similar was to be done in `layer_state_set_user`, `state = remove_auto_mouse_layer(state, false)` should be used instead.
*ADDITIONAL NOTE: `AUTO_MOUSE_TARGET_LAYER` is checked if already set to avoid deactivating the target layer unless needed*.
```c
// in keymap.c

View File

@@ -2,7 +2,7 @@
Programmable Buttons are keys that have no predefined meaning. This means they can be processed on the host side by custom software without the operating system trying to interpret them.
The keycodes are emitted according to the HID Telephony Device page (`0x0B`), Programmable Button usage (`0x07`). On Linux (> 5.14) they are handled automatically and translated to `KEY_MACRO#` keycodes (up to `KEY_MACRO30`).
The keycodes are emitted according to the HID Telephony Device page (`0x0B`), Programmable Button usage (`0x09`). On Linux (> 5.14) they are handled automatically and translated to `KEY_MACRO#` keycodes (up to `KEY_MACRO30`).
?> Currently there is no known support in Windows or macOS. It may be possible to write a custom HID driver to receive these usages, but this is out of the scope of the QMK documentation.

View File

@@ -155,6 +155,29 @@ In your keyboard config.h:
#endif
```
### RP2040 PIO Version :id=rp2040-pio-version
The `PIO` subsystem is a Raspberry Pi RP2040 specific implementation, using the integrated PIO peripheral and is therefore only available on this MCU.
There are strict requirements for pin ordering but any pair of GPIO pins can be used. The GPIO used for clock must be directly after data, see the included info.json snippet for an example of correct order.
You may optionally switch the PIO peripheral used with the following define in config.h:
```c
#define PS2_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the PS2 implementation uses the PIO0 peripheral
```
Example info.json content:
```json
"ps2": {
"clock_pin": "GP1",
"data_pin": "GP0",
"driver": "vendor",
"enabled": true,
"mouse_enabled": true
}
```
## Additional Settings :id=additional-settings
### PS/2 Mouse Features :id=ps2-mouse-features

View File

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

View File

@@ -19,15 +19,14 @@ You can use between 1 and 4 IS31FL3731 IC's. Do not specify `DRIVER_ADDR_<N>` de
| Variable | Description | Default |
|----------|-------------|---------|
| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
| `ISSI_3731_DEGHOST` | (Optional) Set this define to enable de-ghosting by halving Vcc during blanking time | |
| `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | |
| `IS31FL3731_I2C_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
| `IS31FL3731_I2C_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
| `IS31FL3731_DEGHOST` | (Optional) Set this define to enable de-ghosting by halving Vcc during blanking time | |
| `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | |
| `DRIVER_ADDR_1` | (Required) Address for the first RGB driver | |
| `DRIVER_ADDR_2` | (Optional) Address for the second RGB driver | |
| `DRIVER_ADDR_3` | (Optional) Address for the third RGB driver | |
| `DRIVER_ADDR_4` | (Optional) Address for the fourth RGB driver | |
| `IS31FL3731_I2C_ADDRESS_1` | (Required) Address for the first RGB driver | |
| `IS31FL3731_I2C_ADDRESS_2` | (Optional) Address for the second RGB driver | |
| `IS31FL3731_I2C_ADDRESS_3` | (Optional) Address for the third RGB driver | |
| `IS31FL3731_I2C_ADDRESS_4` | (Optional) Address for the fourth RGB driver | |
Here is an example using 2 drivers.
@@ -35,14 +34,15 @@ Here is an example using 2 drivers.
// This is a 7-bit address, that gets left-shifted and bit 0
// set to 0 for write, 1 for read (as per I2C protocol)
// The address will vary depending on your wiring:
// 0b1110100 AD <-> GND
// 0b1110111 AD <-> VCC
// 0b1110101 AD <-> SCL
// 0b1110110 AD <-> SDA
#define DRIVER_ADDR_1 0b1110100
#define DRIVER_ADDR_2 0b1110110
// 00 AD <-> GND
// 01 AD <-> SCL
// 10 AD <-> SDA
// 11 AD <-> VCC
// ADDR represents A1:A0 of the 7-bit address.
// The result is: 0b11101(ADDR)
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 25
#define DRIVER_2_LED_TOTAL 24
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
@@ -50,12 +50,12 @@ Here is an example using 2 drivers.
!> Note the parentheses, this is so when `RGB_MATRIX_LED_COUNT` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`.
For split keyboards using `RGB_MATRIX_SPLIT` with an LED driver, you can either have the same driver address or different driver addresses. If using different addresses, use `DRIVER_ADDR_1` for one and `DRIVER_ADDR_2` for the other one. Then, in `g_is31_leds`, fill out the correct driver index (0 or 1). If using one address, use `DRIVER_ADDR_1` for both, and use index 0 for `g_is31_leds`.
For split keyboards using `RGB_MATRIX_SPLIT` with an LED driver, you can either have the same driver address or different driver addresses. If using different addresses, use `IS31FL3731_I2C_ADDRESS_1` for one and `IS31FL3731_I2C_ADDRESS_2` for the other one. Then, in `g_is31fl3731_leds`, fill out the correct driver index (0 or 1). If using one address, use `IS31FL3731_I2C_ADDRESS_1` for both, and use index 0 for `g_is31fl3731_leds`.
Define these arrays listing all the LEDs in your `<keyboard>.c`:
```c
const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
@@ -83,34 +83,33 @@ You can use between 1 and 4 IS31FL3733 IC's. Do not specify `DRIVER_ADDR_<N>` de
| Variable | Description | Default |
|----------|-------------|---------|
| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
| `ISSI_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3733B only | 0 |
| `ISSI_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF |
| `ISSI_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
| `ISSI_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
| `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | |
| `IS31FL3733_I2C_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
| `IS31FL3733_I2C_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
| `IS31FL3733_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3733B only | 0 |
| `IS31FL3733_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF |
| `IS31FL3733_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
| `IS31FL3733_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
| `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | |
| `DRIVER_ADDR_1` | (Required) Address for the first RGB driver | |
| `DRIVER_ADDR_2` | (Optional) Address for the second RGB driver | |
| `DRIVER_ADDR_3` | (Optional) Address for the third RGB driver | |
| `DRIVER_ADDR_4` | (Optional) Address for the fourth RGB driver | |
| `DRIVER_SYNC_1` | (Optional) Sync configuration for the first RGB driver | 0 |
| `DRIVER_SYNC_2` | (Optional) Sync configuration for the second RGB driver | 0 |
| `DRIVER_SYNC_3` | (Optional) Sync configuration for the third RGB driver | 0 |
| `DRIVER_SYNC_4` | (Optional) Sync configuration for the fourth RGB driver | 0 |
| `IS31FL3733_I2C_ADDRESS_1` | (Required) Address for the first RGB driver | |
| `IS31FL3733_I2C_ADDRESS_2` | (Optional) Address for the second RGB driver | |
| `IS31FL3733_I2C_ADDRESS_3` | (Optional) Address for the third RGB driver | |
| `IS31FL3733_I2C_ADDRESS_4` | (Optional) Address for the fourth RGB driver | |
| `IS31FL3733_SYNC_1` | (Optional) Sync configuration for the first RGB driver | 0 |
| `IS31FL3733_SYNC_2` | (Optional) Sync configuration for the second RGB driver | 0 |
| `IS31FL3733_SYNC_3` | (Optional) Sync configuration for the third RGB driver | 0 |
| `IS31FL3733_SYNC_4` | (Optional) Sync configuration for the fourth RGB driver | 0 |
The IS31FL3733 IC's have on-chip resistors that can be enabled to allow for de-ghosting of the RGB matrix. By default these resistors are not enabled (`ISSI_SWPULLUP`/`ISSI_CSPULLUP` are given the value of`PUR_0R`), the values that can be set to enable de-ghosting are as follows:
The IS31FL3733 IC's have on-chip resistors that can be enabled to allow for de-ghosting of the RGB matrix. By default these resistors are not enabled (`IS31FL3733_SWPULLUP`/`IS31FL3733_CSPULLUP` are given the value of `IS31FL3733_PUR_0R`), the values that can be set to enable de-ghosting are as follows:
| `ISSI_SWPULLUP/ISSI_CSPULLUP` | Description |
| `IS31FL3733_SWPULLUP/IS31FL3733_CSPULLUP` | Description |
|----------------------|-------------|
| `PUR_0R` | (default) Do not use the on-chip resistors/enable de-ghosting |
| `PUR_05KR` | The 0.5k Ohm resistor used during blanking period (t_NOL) |
| `PUR_3KR` | The 3k Ohm resistor used at all times |
| `PUR_4KR` | The 4k Ohm resistor used at all times |
| `PUR_8KR` | The 8k Ohm resistor used at all times |
| `PUR_16KR` | The 16k Ohm resistor used at all times |
| `PUR_32KR` | The 32k Ohm resistor used during blanking period (t_NOL) |
| `IS31FL3733_PUR_0R` | (default) Do not use the on-chip resistors/enable de-ghosting |
| `IS31FL3733_PUR_05KR` | The 0.5k Ohm resistor used during blanking period (t_NOL) |
| `IS31FL3733_PUR_3KR` | The 3k Ohm resistor used at all times |
| `IS31FL3733_PUR_4KR` | The 4k Ohm resistor used at all times |
| `IS31FL3733_PUR_8KR` | The 8k Ohm resistor used at all times |
| `IS31FL3733_PUR_16KR` | The 16k Ohm resistor used at all times |
| `IS31FL3733_PUR_32KR` | The 32k Ohm resistor used during blanking period (t_NOL) |
Here is an example using 2 drivers.
@@ -118,17 +117,16 @@ Here is an example using 2 drivers.
// This is a 7-bit address, that gets left-shifted and bit 0
// set to 0 for write, 1 for read (as per I2C protocol)
// The address will vary depending on your wiring:
// 00 <-> GND
// 01 <-> SCL
// 10 <-> SDA
// 11 <-> VCC
// 00 ADDRn <-> GND
// 01 ADDRn <-> SCL
// 10 ADDRn <-> SDA
// 11 ADDRn <-> VCC
// ADDR1 represents A1:A0 of the 7-bit address.
// ADDR2 represents A3:A2 of the 7-bit address.
// The result is: 0b101(ADDR2)(ADDR1)
#define DRIVER_ADDR_1 0b1010000
#define DRIVER_ADDR_2 0b1010011
#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_VCC
#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 58
#define DRIVER_2_LED_TOTAL 10
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
@@ -141,19 +139,19 @@ Currently only 4 drivers are supported, but it would be trivial to support all 8
Define these arrays listing all the LEDs in your `<keyboard>.c`:
```c
const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
* | | G location
* | | | B location
* | | | | */
{0, B_1, A_1, C_1},
* | | G location
* | | | B location
* | | | | */
{0, SW1_CS1, SW1_CS2, SW1_CS3},
....
}
```
Where `X_Y` is the location of the LED in the matrix defined by [the datasheet](https://www.issi.com/WW/pdf/31FL3733.pdf) and the header file `drivers/led/issi/is31fl3733.h`. The `driver` is the index of the driver you defined in your `config.h` (`0`, `1`, `2`, or `3` for now).
Where `SWx_CSy` is the location of the LED in the matrix defined by [the datasheet](https://www.issi.com/WW/pdf/31FL3733.pdf) and the header file `drivers/led/issi/is31fl3733.h`. The `driver` is the index of the driver you defined in your `config.h` (`0`, `1`, `2`, or `3` for now).
---
### IS31FL3736 :id=is31fl3736
@@ -170,31 +168,30 @@ Configure the hardware via your `config.h`:
| Variable | Description | Default |
|----------|-------------|---------|
| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
| `ISSI_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3736B only | 0 |
| `ISSI_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF |
| `ISSI_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
| `ISSI_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
| `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | |
| `IS31FL3736_I2C_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
| `IS31FL3736_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
| `IS31FL3736_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3736B only | 0 |
| `IS31FL3736_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF |
| `IS31FL3736_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
| `IS31FL3736_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
| `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | |
| `DRIVER_ADDR_1` | (Required) Address for the first RGB driver | |
| `DRIVER_ADDR_2` | (Optional) Address for the second RGB driver | |
| `DRIVER_ADDR_3` | (Optional) Address for the third RGB driver | |
| `DRIVER_ADDR_4` | (Optional) Address for the fourth RGB driver | |
| `IS31FL3736_I2C_ADDRESS_1` | (Required) Address for the first RGB driver | |
| `IS31FL3736_I2C_ADDRESS_2` | (Optional) Address for the second RGB driver | |
| `IS31FL3736_I2C_ADDRESS_3` | (Optional) Address for the third RGB driver | |
| `IS31FL3736_I2C_ADDRESS_4` | (Optional) Address for the fourth RGB driver | |
The IS31FL3736 IC's have on-chip resistors that can be enabled to allow for de-ghosting of the RGB matrix. By default these resistors are not enabled (`ISSI_SWPULLUP`/`ISSI_CSPULLUP` are given the value of`PUR_0R`), the values that can be set to enable de-ghosting are as follows:
The IS31FL3736 IC's have on-chip resistors that can be enabled to allow for de-ghosting of the RGB matrix. By default these resistors are not enabled (`IS31FL3736_SWPULLUP`/`IS31FL3736_CSPULLUP` are given the value of `IS31FL3736_PUR_0R`), the values that can be set to enable de-ghosting are as follows:
| `ISSI_SWPULLUP/ISSI_CSPULLUP` | Description |
| `IS31FL3736_SWPULLUP/IS31FL3736_CSPULLUP` | Description |
|----------------------|-------------|
| `PUR_0R` | (default) Do not use the on-chip resistors/enable de-ghosting |
| `PUR_05KR` | The 0.5k Ohm resistor used during blanking period (t_NOL) |
| `PUR_1KR` | The 1k Ohm resistor used during blanking period (t_NOL) |
| `PUR_2KR` | The 2k Ohm resistor used during blanking period (t_NOL) |
| `PUR_4KR` | The 4k Ohm resistor used during blanking period (t_NOL) |
| `PUR_8KR` | The 8k Ohm resistor during blanking period (t_NOL) |
| `PUR_16KR` | The 16k Ohm resistor during blanking period (t_NOL) |
| `PUR_32KR` | The 32k Ohm resistor used during blanking period (t_NOL) |
| `IS31FL3736_PUR_0R` | (default) Do not use the on-chip resistors/enable de-ghosting |
| `IS31FL3736_PUR_05KR` | The 0.5k Ohm resistor used during blanking period (t_NOL) |
| `IS31FL3736_PUR_1KR` | The 1k Ohm resistor used during blanking period (t_NOL) |
| `IS31FL3736_PUR_2KR` | The 2k Ohm resistor used during blanking period (t_NOL) |
| `IS31FL3736_PUR_4KR` | The 4k Ohm resistor used during blanking period (t_NOL) |
| `IS31FL3736_PUR_8KR` | The 8k Ohm resistor during blanking period (t_NOL) |
| `IS31FL3736_PUR_16KR` | The 16k Ohm resistor during blanking period (t_NOL) |
| `IS31FL3736_PUR_32KR` | The 32k Ohm resistor used during blanking period (t_NOL) |
Here is an example using 2 drivers.
@@ -202,16 +199,16 @@ Here is an example using 2 drivers.
// This is a 7-bit address, that gets left-shifted and bit 0
// set to 0 for write, 1 for read (as per I2C protocol)
// The address will vary depending on your wiring:
// 0000 <-> GND
// 0101 <-> SCL
// 1010 <-> SDA
// 1111 <-> VCC
// ADDR represents A3:A0 of the 7-bit address.
// The result is: 0b101(ADDR)
#define DRIVER_ADDR_1 0b1010000
#define DRIVER_ADDR_2 0b1010001
// 00 ADDRn <-> GND
// 01 ADDRn <-> SCL
// 10 ADDRn <-> SDA
// 11 ADDRn <-> VCC
// ADDR1 represents A1:A0 of the 7-bit address.
// ADDR2 represents A3:A2 of the 7-bit address.
// The result is: 0b101(ADDR2)(ADDR1)
#define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND
#define IS31FL3736_I2C_ADDRESS_2 IS31FL3736_I2C_ADDRESS_GND_SCL
#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 30
#define DRIVER_2_LED_TOTAL 32
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
@@ -221,14 +218,14 @@ Here is an example using 2 drivers.
Define these arrays listing all the LEDs in your `<keyboard>.c`:
```c
const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
const is31fl3736_led_t PROGMEM g_is31fl3736_leds[IS31FL3736_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
* | | G location
* | | | B location
* | | | | */
{0, B_1, A_1, C_1},
* | | G location
* | | | B location
* | | | | */
{0, SW1_CS1, SW1_CS2, SW1_CS3},
....
}
```
@@ -246,31 +243,30 @@ Configure the hardware via your `config.h`:
| Variable | Description | Default |
|----------|-------------|---------|
| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
| `ISSI_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3737B only | 0 |
| `ISSI_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF |
| `ISSI_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
| `ISSI_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
| `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | |
| `IS31FL3737_I2C_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
| `IS31FL3737_I2C_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
| `IS31FL3737_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3737B only | 0 |
| `IS31FL3737_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF |
| `IS31FL3737_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
| `IS31FL3737_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
| `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | |
| `DRIVER_ADDR_1` | (Required) Address for the first RGB driver | |
| `DRIVER_ADDR_2` | (Optional) Address for the second RGB driver | |
| `DRIVER_ADDR_3` | (Optional) Address for the third RGB driver | |
| `DRIVER_ADDR_4` | (Optional) Address for the fourth RGB driver | |
| `IS31FL3737_I2C_ADDRESS_1` | (Required) Address for the first RGB driver | |
| `IS31FL3737_I2C_ADDRESS_2` | (Optional) Address for the second RGB driver | |
| `IS31FL3737_I2C_ADDRESS_3` | (Optional) Address for the third RGB driver | |
| `IS31FL3737_I2C_ADDRESS_4` | (Optional) Address for the fourth RGB driver | |
The IS31FL3737 IC's have on-chip resistors that can be enabled to allow for de-ghosting of the RGB matrix. By default these resistors are not enabled (`ISSI_SWPULLUP`/`ISSI_CSPULLUP` are given the value of`PUR_0R`), the values that can be set to enable de-ghosting are as follows:
The IS31FL3737 IC's have on-chip resistors that can be enabled to allow for de-ghosting of the RGB matrix. By default these resistors are not enabled (`IS31FL3737_SWPULLUP`/`IS31FL3737_CSPULLUP` are given the value of `IS31FL3737_PUR_0R`), the values that can be set to enable de-ghosting are as follows:
| `ISSI_SWPULLUP/ISSI_CSPULLUP` | Description |
| `IS31FL3737_SWPULLUP/IS31FL3737_CSPULLUP` | Description |
|----------------------|-------------|
| `PUR_0R` | (default) Do not use the on-chip resistors/enable de-ghosting |
| `PUR_05KR` | The 0.5k Ohm resistor used during blanking period (t_NOL) |
| `PUR_1KR` | The 1k Ohm resistor used during blanking period (t_NOL) |
| `PUR_2KR` | The 2k Ohm resistor used during blanking period (t_NOL) |
| `PUR_4KR` | The 4k Ohm resistor used during blanking period (t_NOL) |
| `PUR_8KR` | The 8k Ohm resistor during blanking period (t_NOL) |
| `PUR_16KR` | The 16k Ohm resistor during blanking period (t_NOL) |
| `PUR_32KR` | The 32k Ohm resistor used during blanking period (t_NOL) |
| `IS31FL3737_PUR_0R` | (default) Do not use the on-chip resistors/enable de-ghosting |
| `IS31FL3737_PUR_05KR` | The 0.5k Ohm resistor used during blanking period (t_NOL) |
| `IS31FL3737_PUR_1KR` | The 1k Ohm resistor used during blanking period (t_NOL) |
| `IS31FL3737_PUR_2KR` | The 2k Ohm resistor used during blanking period (t_NOL) |
| `IS31FL3737_PUR_4KR` | The 4k Ohm resistor used during blanking period (t_NOL) |
| `IS31FL3737_PUR_8KR` | The 8k Ohm resistor during blanking period (t_NOL) |
| `IS31FL3737_PUR_16KR` | The 16k Ohm resistor during blanking period (t_NOL) |
| `IS31FL3737_PUR_32KR` | The 32k Ohm resistor used during blanking period (t_NOL) |
Here is an example using 2 drivers.
@@ -278,16 +274,15 @@ Here is an example using 2 drivers.
// This is a 7-bit address, that gets left-shifted and bit 0
// set to 0 for write, 1 for read (as per I2C protocol)
// The address will vary depending on your wiring:
// 0000 <-> GND
// 0101 <-> SCL
// 1010 <-> SDA
// 1111 <-> VCC
// 0000 ADDR <-> GND
// 0101 ADDR <-> SCL
// 1010 ADDR <-> SDA
// 1111 ADDR <-> VCC
// ADDR represents A3:A0 of the 7-bit address.
// The result is: 0b101(ADDR)
#define DRIVER_ADDR_1 0b1010000
#define DRIVER_ADDR_2 0b1010001
#define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND
#define IS31FL3737_I2C_ADDRESS_2 IS31FL3737_I2C_ADDRESS_SCL
#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 30
#define DRIVER_2_LED_TOTAL 36
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
@@ -297,19 +292,19 @@ Here is an example using 2 drivers.
Define these arrays listing all the LEDs in your `<keyboard>.c`:
```c
const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
const is31fl3737_led_t PROGMEM g_is31fl3737_leds[IS31FL3737_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
* | | G location
* | | | B location
* | | | | */
{0, B_1, A_1, C_1},
* | | G location
* | | | B location
* | | | | */
{0, SW1_CS1, SW1_CS2, SW1_CS3},
....
}
```
Where `X_Y` is the location of the LED in the matrix defined by [the datasheet](https://www.issi.com/WW/pdf/31FL3737.pdf) and the header file `drivers/led/issi/is31fl3737.h`. The `driver` is the index of the driver you defined in your `config.h` (Only `0`, `1`, `2`, or `3` for now).
Where `SWx_CSy` is the location of the LED in the matrix defined by [the datasheet](https://www.issi.com/WW/pdf/31FL3737.pdf) and the header file `drivers/led/issi/is31fl3737.h`. The `driver` is the index of the driver you defined in your `config.h` (Only `0`, `1`, `2`, or `3` for now).
---
### IS31FLCOMMON :id=is31flcommon
@@ -338,7 +333,6 @@ Configure the hardware via your `config.h`:
|----------|-------------|---------|
| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
| `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | |
| `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | |
| `DRIVER_ADDR_1` | (Optional) Address for the first RGB driver | |
| `DRIVER_ADDR_<N>` | (Required) Address for the additional RGB drivers | |
@@ -373,7 +367,6 @@ Here is an example using 2 drivers.
```c
#define DRIVER_ADDR_2 0b0100001
#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 66
#define DRIVER_2_LED_TOTAL 42
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
@@ -393,7 +386,7 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
* | | G location
* | | | B location
* | | | | */
{0, CS1_SW1, CS2_SW1, CS3_SW1},
{0, SW1_CS1, SW1_CS2, SW1_CS3},
....
}
```
@@ -407,7 +400,7 @@ Then Define the array listing all the LEDs you want to override in your `<keyboa
```c
const is31_led PROGMEM g_is31_scaling[ISSI_MANUAL_SCALING] = {
* LED Index
/* LED Index
* | R scaling
* | | G scaling
* | | | B scaling
@@ -465,41 +458,39 @@ Configure the hardware via your `config.h`:
```
---
### AW20216 :id=aw20216
There is basic support for addressable RGB matrix lighting with the SPI AW20216 RGB controller. To enable it, add this to your `rules.mk`:
### AW20216S :id=aw20216s
There is basic support for addressable RGB matrix lighting with the SPI AW20216S RGB controller. To enable it, add this to your `rules.mk`:
```make
RGB_MATRIX_ENABLE = yes
RGB_MATRIX_DRIVER = aw20216
RGB_MATRIX_DRIVER = aw20216s
```
You can use up to 2 AW20216 IC's. Do not specify `DRIVER_<N>_xxx` defines for IC's that are not present on your keyboard. You can define the following items in `config.h`:
You can use up to 2 AW20216S IC's. Do not specify `DRIVER_<N>_xxx` defines for IC's that are not present on your keyboard. You can define the following items in `config.h`:
| Variable | Description | Default |
|----------|-------------|---------|
| `DRIVER_1_CS` | (Required) MCU pin connected to first RGB driver chip select line | B13 |
| `DRIVER_2_CS` | (Optional) MCU pin connected to second RGB driver chip select line | |
| `DRIVER_1_EN` | (Required) MCU pin connected to first RGB driver hardware enable line | C13 |
| `DRIVER_2_EN` | (Optional) MCU pin connected to second RGB driver hardware enable line | |
| `AW20216S_CS_PIN_1` | (Required) MCU pin connected to first RGB driver chip select line | B13 |
| `AW20216S_CS_PIN_2` | (Optional) MCU pin connected to second RGB driver chip select line | |
| `AW20216S_EN_PIN_1` | (Required) MCU pin connected to first RGB driver hardware enable line | C13 |
| `AW20216S_EN_PIN_2` | (Optional) MCU pin connected to second RGB driver hardware enable line | |
| `DRIVER_1_LED_TOTAL` | (Required) How many RGB lights are connected to first RGB driver | |
| `DRIVER_2_LED_TOTAL` | (Optional) How many RGB lights are connected to second RGB driver | |
| `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | |
| `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | |
| `AW_SCALING_MAX` | (Optional) LED current scaling value (0-255, higher values mean LED is brighter at full PWM) | 150 |
| `AW_GLOBAL_CURRENT_MAX` | (Optional) Driver global current limit (0-255, higher values means the driver may consume more power) | 150 |
| `AW_SPI_MODE` | (Optional) Mode for SPI communication (0-3, defines polarity and phase of the clock) | 3 |
| `AW_SPI_DIVISOR` | (Optional) Clock divisor for SPI communication (powers of 2, smaller numbers means faster communication, should not be less than 4) | 4 |
| `AW20216S_SCALING_MAX` | (Optional) LED current scaling value (0-255, higher values mean LED is brighter at full PWM) | 150 |
| `AW20216S_GLOBAL_CURRENT_MAX` | (Optional) Driver global current limit (0-255, higher values means the driver may consume more power) | 150 |
| `AW20216S_SPI_MODE` | (Optional) Mode for SPI communication (0-3, defines polarity and phase of the clock) | 3 |
| `AW20216S_SPI_DIVISOR` | (Optional) Clock divisor for SPI communication (powers of 2, smaller numbers means faster communication, should not be less than 4) | 4 |
Here is an example using 2 drivers.
```c
#define DRIVER_1_CS B13
#define DRIVER_2_CS B14
#define AW20216S_CS_PIN_1 B13
#define AW20216S_CS_PIN_2 B14
// Hardware enable lines may be connected to the same pin
#define DRIVER_1_EN C13
#define DRIVER_2_EN C13
#define AW20216S_EN_PIN_1 C13
#define AW20216S_EN_PIN_2 C13
#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 66
#define DRIVER_2_LED_TOTAL 32
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
@@ -510,26 +501,26 @@ Here is an example using 2 drivers.
Define these arrays listing all the LEDs in your `<keyboard>.c`:
```c
const aw_led PROGMEM g_aw_leds[RGB_MATRIX_LED_COUNT] = {
/* Each AW20216 channel is controlled by a register at some offset between 0x00
const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = {
/* Each AW20216S channel is controlled by a register at some offset between 0x00
* and 0xD7 inclusive.
* See drivers/awinic/aw20216.h for the mapping between register offsets and
* See drivers/led/aw20216s.h for the mapping between register offsets and
* driver pin locations.
* driver
* | R location
* | | G location
* | | | B location
* | | | | */
{ 0, CS1_SW1, CS2_SW1, CS3_SW1 },
{ 0, CS4_SW1, CS5_SW1, CS6_SW1 },
{ 0, CS7_SW1, CS8_SW1, CS9_SW1 },
{ 0, CS10_SW1, CS11_SW1, CS12_SW1 },
{ 0, CS13_SW1, CS14_SW1, CS15_SW1 },
{ 0, SW1_CS1, SW1_CS2, SW1_CS3 },
{ 0, SW1_CS4, SW1_CS5, SW1_CS6 },
{ 0, SW1_CS7, SW1_CS8, SW1_CS9 },
{ 0, SW1_CS10, SW1_CS11, SW1_CS12 },
{ 0, SW1_CS13, SW1_CS14, SW1_CS15 },
...
{ 1, CS1_SW1, CS2_SW1, CS3_SW1 },
{ 1, CS13_SW1, CS14_SW1, CS15_SW1 },
{ 1, CS16_SW1, CS17_SW1, CS18_SW1 },
{ 1, CS4_SW2, CS5_SW2, CS6_SW2 },
{ 1, SW1_CS1, SW1_CS2, SW1_CS3 },
{ 1, SW1_CS13, SW1_CS14, SW1_CS15 },
{ 1, SW1_CS16, SW1_CS17, SW1_CS18 },
{ 1, SW2_CS4, SW2_CS5, SW2_CS6 },
...
};
```
@@ -642,6 +633,7 @@ enum rgb_matrix_effects {
RGB_MATRIX_DUAL_BEACON, // Full gradient spinning around center of keyboard
RGB_MATRIX_RAINBOW_BEACON, // Full tighter gradient spinning around center of keyboard
RGB_MATRIX_RAINBOW_PINWHEELS, // Full dual gradients spinning two halfs of keyboard
RGB_MATRIX_FLOWER_BLOOMING, // Full tighter gradient of first half scrolling left to right and second half scrolling right to left
RGB_MATRIX_RAINDROPS, // Randomly changes a single key's hue
RGB_MATRIX_JELLYBEAN_RAINDROPS, // Randomly changes a single key's hue and saturation
RGB_MATRIX_HUE_BREATHING, // Hue shifts up a slight ammount at the same time, then shifts back
@@ -654,16 +646,20 @@ enum rgb_matrix_effects {
RGB_MATRIX_DIGITAL_RAIN, // That famous computer simulation
RGB_MATRIX_SOLID_REACTIVE_SIMPLE, // Pulses keys hit to hue & value then fades value out
RGB_MATRIX_SOLID_REACTIVE, // Static single hue, pulses keys hit to shifted hue then fades to current hue
RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse near a single key hit then fades value out
RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // Hue & value pulse near multiple key hits then fades value out
RGB_MATRIX_SOLID_REACTIVE_CROSS // Hue & value pulse the same column and row of a single key hit then fades value out
RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Hue & value pulse the same column and row of multiple key hits then fades value out
RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of a single key hit then fades value out
RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multiple key hits then fades value out
RGB_MATRIX_SOLID_REACTIVE_WIDE, // Hue & value pulse near a single key hit then fades value out
RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE, // Hue & value pulse near multiple key hits then fades value out
RGB_MATRIX_SOLID_REACTIVE_CROSS, // Hue & value pulse the same column and row of a single key hit then fades value out
RGB_MATRIX_SOLID_REACTIVE_MULTICROSS, // Hue & value pulse the same column and row of multiple key hits then fades value out
RGB_MATRIX_SOLID_REACTIVE_NEXUS, // Hue & value pulse away on the same column and row of a single key hit then fades value out
RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS, // Hue & value pulse away on the same column and row of multiple key hits then fades value out
RGB_MATRIX_SPLASH, // Full gradient & value pulse away from a single key hit then fades value out
RGB_MATRIX_MULTISPLASH, // Full gradient & value pulse away from multiple key hits then fades value out
RGB_MATRIX_SOLID_SPLASH, // Hue & value pulse away from a single key hit then fades value out
RGB_MATRIX_SOLID_MULTISPLASH, // Hue & value pulse away from multiple key hits then fades value out
RGB_MATRIX_STARLIGHT, // LEDs turn on and off at random at varying brightness, maintaining user set color
RGB_MATRIX_STARLIGHT_DUAL_HUE, // LEDs turn on and off at random at varying brightness, modifies user set hue by +- 30
RGB_MATRIX_STARLIGHT_DUAL_SAT, // LEDs turn on and off at random at varying brightness, modifies user set saturation by +- 30
RGB_MATRIX_RIVERFLOW, // Modification to breathing animation, offset's animation depending on key location to simulate a river flowing
RGB_MATRIX_EFFECT_MAX
};
```
@@ -694,6 +690,7 @@ You can enable a single effect by defining `ENABLE_[EFFECT_NAME]` in your `confi
|`#define ENABLE_RGB_MATRIX_DUAL_BEACON` |Enables `RGB_MATRIX_DUAL_BEACON` |
|`#define ENABLE_RGB_MATRIX_RAINBOW_BEACON` |Enables `RGB_MATRIX_RAINBOW_BEACON` |
|`#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS` |Enables `RGB_MATRIX_RAINBOW_PINWHEELS` |
|`#define ENABLE_RGB_MATRIX_FLOWER_BLOOMING` |Enables `RGB_MATRIX_FLOWER_BLOOMING` |
|`#define ENABLE_RGB_MATRIX_RAINDROPS` |Enables `RGB_MATRIX_RAINDROPS` |
|`#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS` |Enables `RGB_MATRIX_JELLYBEAN_RAINDROPS` |
|`#define ENABLE_RGB_MATRIX_HUE_BREATHING` |Enables `RGB_MATRIX_HUE_BREATHING` |
@@ -702,6 +699,10 @@ You can enable a single effect by defining `ENABLE_[EFFECT_NAME]` in your `confi
|`#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL` |Enables `RGB_MATRIX_PIXEL_FRACTAL` |
|`#define ENABLE_RGB_MATRIX_PIXEL_FLOW` |Enables `RGB_MATRIX_PIXEL_FLOW` |
|`#define ENABLE_RGB_MATRIX_PIXEL_RAIN` |Enables `RGB_MATRIX_PIXEL_RAIN` |
|`#define ENABLE_RGB_MATRIX_STARLIGHT` |Enables `RGB_MATRIX_STARLIGHT` |
|`#define ENABLE_RGB_MATRIX_STARLIGHT_DUAL_HUE` |Enables `RGB_MATRIX_STARLIGHT_DUAL_HUE` |
|`#define ENABLE_RGB_MATRIX_STARLIGHT_DUAL_SAT` |Enables `RGB_MATRIX_STARLIGHT_DUAL_SAT` |
|`#define ENABLE_RGB_MATRIX_RIVERFLOW` |Enables `RGB_MATRIX_RIVERFLOW` |
|Framebuffer Defines |Description |
|------------------------------------------------------|----------------------------------------------|
@@ -868,15 +869,17 @@ These are defined in [`color.h`](https://github.com/qmk/qmk_firmware/blob/master
```c
#define RGB_MATRIX_KEYRELEASES // reactive effects respond to keyreleases (instead of keypresses)
#define RGB_MATRIX_TIMEOUT 0 // number of milliseconds to wait until rgb automatically turns off
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
#define RGB_MATRIX_SLEEP // turn off effects when suspended
#define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
#define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
#define RGB_MATRIX_DEFAULT_ON true // Sets the default enabled state, if none has been set
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT // Sets the default mode, if none has been set
#define RGB_MATRIX_DEFAULT_HUE 0 // Sets the default hue value, if none has been set
#define RGB_MATRIX_DEFAULT_SAT 255 // Sets the default saturation value, if none has been set
#define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set
#define RGB_MATRIX_DEFAULT_SPD 127 // Sets the default animation speed, if none has been set
#define RGB_MATRIX_DEFAULT_FLAGS LED_FLAG_ALL // Sets the default LED flags, if none has been set
#define RGB_MATRIX_DISABLE_KEYCODES // disables control of rgb matrix by keycodes (must use code functions to control the feature)
#define RGB_MATRIX_SPLIT { X, Y } // (Optional) For split keyboards, the number of LEDs connected on each half. X = left, Y = Right.
// If reactive effects are enabled, you also will want to enable SPLIT_TRANSPORT_MIRROR

View File

@@ -33,13 +33,13 @@ RGBLIGHT_DRIVER = apa102
At minimum you must define the data pin your LED strip is connected to, and the number of LEDs in the strip, in your `config.h`. For APA102 LEDs, you must also define the clock pin. If your keyboard has onboard RGB LEDs, and you are simply creating a keymap, you usually won't need to modify these.
|Define |Description |
|---------------|-------------------------------------------------------------------------|
|`WS2812_DI_PIN`|The pin connected to the data pin of the LEDs (WS2812) |
|`APA102_DI_PIN`|The pin connected to the data pin of the LEDs (APA102) |
|`APA102_CI_PIN`|The pin connected to the clock pin of the LEDs (APA102) |
|`RGBLED_NUM` |The number of LEDs connected |
|`RGBLED_SPLIT` |(Optional) For split keyboards, the number of LEDs connected on each half|
|Define |Description |
|--------------------|-------------------------------------------------------------------------|
|`WS2812_DI_PIN` |The pin connected to the data pin of the LEDs (WS2812) |
|`APA102_DI_PIN` |The pin connected to the data pin of the LEDs (APA102) |
|`APA102_CI_PIN` |The pin connected to the clock pin of the LEDs (APA102) |
|`RGBLIGHT_LED_COUNT`|The number of LEDs connected |
|`RGBLED_SPLIT` |(Optional) For split keyboards, the number of LEDs connected on each half|
Then you should be able to use the keycodes below to change the RGB lighting to your liking.
@@ -102,6 +102,7 @@ Your RGB lighting can be configured by placing these `#define`s in your `config.
|`RGBLIGHT_DEFAULT_SAT` |`UINT8_MAX` (255) |The default saturation to use upon clearing the EEPROM |
|`RGBLIGHT_DEFAULT_VAL` |`RGBLIGHT_LIMIT_VAL` |The default value (brightness) to use upon clearing the EEPROM |
|`RGBLIGHT_DEFAULT_SPD` |`0` |The default speed to use upon clearing the EEPROM |
|`RGBLIGHT_DEFAULT_ON` |`true` |Enable RGB lighting upon clearing the EEPROM |
## Effects and Animations
@@ -151,28 +152,28 @@ Use these defines to add or remove animations from the firmware. When you are ru
The following options are used to tweak the various animations:
|Define |Default |Description |
|------------------------------------|-------------|-----------------------------------------------------------------------------------------------|
|`RGBLIGHT_EFFECT_BREATHE_CENTER` |*Not defined*|If defined, used to calculate the curve for the breathing animation. Valid values are 1.0 to 2.7 |
|`RGBLIGHT_EFFECT_BREATHE_MAX` |`255` |The maximum brightness for the breathing mode. Valid values are 1 to 255 |
|`RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL`|`40` |How long (in milliseconds) to wait between animation steps for the "Christmas" animation |
|`RGBLIGHT_EFFECT_CHRISTMAS_STEP` |`2` |The number of LEDs to group the red/green colors by for the "Christmas" animation |
|`RGBLIGHT_EFFECT_KNIGHT_LED_NUM` |`RGBLED_NUM` |The number of LEDs to have the "Knight" animation travel |
|`RGBLIGHT_EFFECT_KNIGHT_LENGTH` |`3` |The number of LEDs to light up for the "Knight" animation |
|`RGBLIGHT_EFFECT_KNIGHT_OFFSET` |`0` |The number of LEDs to start the "Knight" animation from the start of the strip by |
|`RGBLIGHT_RAINBOW_SWIRL_RANGE` |`255` |Range adjustment for the rainbow swirl effect to get different swirls |
|`RGBLIGHT_EFFECT_SNAKE_LENGTH` |`4` |The number of LEDs to light up for the "Snake" animation |
|`RGBLIGHT_EFFECT_TWINKLE_LIFE` |`200` |Adjusts how quickly each LED brightens and dims when twinkling (in animation steps) |
|`RGBLIGHT_EFFECT_TWINKLE_PROBABILITY`|`1/127` |Adjusts how likely each LED is to twinkle (on each animation step) |
|Define |Default |Description |
|------------------------------------|--------------------|-----------------------------------------------------------------------------------------------|
|`RGBLIGHT_EFFECT_BREATHE_CENTER` |*Not defined* |If defined, used to calculate the curve for the breathing animation. Valid values are 1.0 to 2.7 |
|`RGBLIGHT_EFFECT_BREATHE_MAX` |`255` |The maximum brightness for the breathing mode. Valid values are 1 to 255 |
|`RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL`|`40` |How long (in milliseconds) to wait between animation steps for the "Christmas" animation |
|`RGBLIGHT_EFFECT_CHRISTMAS_STEP` |`2` |The number of LEDs to group the red/green colors by for the "Christmas" animation |
|`RGBLIGHT_EFFECT_KNIGHT_LED_NUM` |`RGBLIGHT_LED_COUNT`|The number of LEDs to have the "Knight" animation travel |
|`RGBLIGHT_EFFECT_KNIGHT_LENGTH` |`3` |The number of LEDs to light up for the "Knight" animation |
|`RGBLIGHT_EFFECT_KNIGHT_OFFSET` |`0` |The number of LEDs to start the "Knight" animation from the start of the strip by |
|`RGBLIGHT_RAINBOW_SWIRL_RANGE` |`255` |Range adjustment for the rainbow swirl effect to get different swirls |
|`RGBLIGHT_EFFECT_SNAKE_LENGTH` |`4` |The number of LEDs to light up for the "Snake" animation |
|`RGBLIGHT_EFFECT_TWINKLE_LIFE` |`200` |Adjusts how quickly each LED brightens and dims when twinkling (in animation steps) |
|`RGBLIGHT_EFFECT_TWINKLE_PROBABILITY`|`1/127` |Adjusts how likely each LED is to twinkle (on each animation step) |
### Example Usage to Reduce Memory Footprint
1. Use `#undef` to selectively disable animations. The following would disable two animations and save about 4KiB:
```diff
#undef RGBLED_NUM
#undef RGBLIGHT_LED_COUNT
+#undef RGBLIGHT_EFFECT_STATIC_GRADIENT
+#undef RGBLIGHT_EFFECT_RAINBOW_SWIRL
#define RGBLED_NUM 12
#define RGBLIGHT_LED_COUNT 12
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
```
@@ -370,9 +371,9 @@ If you need to change your RGB lighting in code, for example in a macro to chang
Example:
```c
sethsv(HSV_WHITE, (LED_TYPE *)&led[0]); // led 0
sethsv(HSV_RED, (LED_TYPE *)&led[1]); // led 1
sethsv(HSV_GREEN, (LED_TYPE *)&led[2]); // led 2
sethsv(HSV_WHITE, (rgb_led_t *)&led[0]); // led 0
sethsv(HSV_RED, (rgb_led_t *)&led[1]); // led 1
sethsv(HSV_GREEN, (rgb_led_t *)&led[2]); // led 2
rgblight_set(); // Utility functions do not call rgblight_set() automatically, so they need to be called explicitly.
```
@@ -385,10 +386,10 @@ rgblight_set(); // Utility functions do not call rgblight_set() automatically, s
#### direct operation
|Function |Description |
|--------------------------------------------|-------------|
|`rgblight_setrgb_at(r, g, b, index)` |Set a single LED to the given RGB value, where `r`/`g`/`b` are between 0 and 255 and `index` is between 0 and `RGBLED_NUM` (not written to EEPROM) |
|`rgblight_sethsv_at(h, s, v, index)` |Set a single LED to the given HSV value, where `h`/`s`/`v` are between 0 and 255, and `index` is between 0 and `RGBLED_NUM` (not written to EEPROM) |
|`rgblight_setrgb_range(r, g, b, start, end)`|Set a continuous range of LEDs to the given RGB value, where `r`/`g`/`b` are between 0 and 255 and `start`(included) and `stop`(excluded) are between 0 and `RGBLED_NUM` (not written to EEPROM)|
|`rgblight_sethsv_range(h, s, v, start, end)`|Set a continuous range of LEDs to the given HSV value, where `h`/`s`/`v` are between 0 and 255, and `start`(included) and `stop`(excluded) are between 0 and `RGBLED_NUM` (not written to EEPROM)|
|`rgblight_setrgb_at(r, g, b, index)` |Set a single LED to the given RGB value, where `r`/`g`/`b` are between 0 and 255 and `index` is between 0 and `RGBLIGHT_LED_COUNT` (not written to EEPROM) |
|`rgblight_sethsv_at(h, s, v, index)` |Set a single LED to the given HSV value, where `h`/`s`/`v` are between 0 and 255, and `index` is between 0 and `RGBLIGHT_LED_COUNT` (not written to EEPROM) |
|`rgblight_setrgb_range(r, g, b, start, end)`|Set a continuous range of LEDs to the given RGB value, where `r`/`g`/`b` are between 0 and 255 and `start`(included) and `stop`(excluded) are between 0 and `RGBLIGHT_LED_COUNT` (not written to EEPROM)|
|`rgblight_sethsv_range(h, s, v, start, end)`|Set a continuous range of LEDs to the given HSV value, where `h`/`s`/`v` are between 0 and 255, and `start`(included) and `stop`(excluded) are between 0 and `RGBLIGHT_LED_COUNT` (not written to EEPROM)|
|`rgblight_setrgb(r, g, b)` |Set effect range LEDs to the given RGB value where `r`/`g`/`b` are between 0 and 255 (not written to EEPROM) |
|`rgblight_setrgb_master(r, g, b)` |Set the LEDs on the master side to the given RGB value, where `r`/`g`/`b` are between 0 and 255 (not written to EEPROM) |
|`rgblight_setrgb_slave(r, g, b)` |Set the LEDs on the slave side to the given RGB value, where `r`/`g`/`b` are between 0 and 255 (not written to EEPROM) |
@@ -518,13 +519,12 @@ By defining `RGBLIGHT_LED_MAP` as in the example below, you can specify the LED
```c
// config.h
#define RGBLED_NUM 4
#define RGBLIGHT_LED_COUNT 4
#define RGBLIGHT_LED_MAP { 3, 2, 1, 0 }
```
<img src="https://user-images.githubusercontent.com/2170248/55743725-08ad7a80-5a6e-11e9-83ed-126a2b0209fc.JPG" alt="simple mapped" width="50%"/>
```
## Clipping Range
Using the `rgblight_set_clipping_range()` function, you can prepare more buffers than the actual number of LEDs, and output some of the buffers to the LEDs. This is useful if you want the split keyboard to treat left and right LEDs as logically contiguous.
@@ -541,14 +541,44 @@ In addition to setting the Clipping Range, you can use `RGBLIGHT_LED_MAP` togeth
```c
// config.h
#define RGBLED_NUM 8
#define RGBLIGHT_LED_COUNT 8
#define RGBLIGHT_LED_MAP { 7, 6, 5, 4, 3, 2, 1, 0 }
// some soruce
rgblight_set_clipping_range(3, 4);
// some source
rgblight_set_clipping_range(3, 4);
```
<img src="https://user-images.githubusercontent.com/2170248/55743747-119e4c00-5a6e-11e9-91e5-013203ffae8a.JPG" alt="clip mapped" width="70%"/>
## Hardware Modification
If your keyboard lacks onboard underglow LEDs, you may often be able to solder on an RGB LED strip yourself. You will need to find an unused pin to wire to the data pin of your LED strip. Some keyboards may break out unused pins from the MCU to make soldering easier. The other two pins, VCC and GND, must also be connected to the appropriate power pins.
## Velocikey
Velocikey is a feature that lets you control the speed of lighting effects (like the Rainbow Swirl effect) with the speed of your typing. The faster you type, the faster the lights will go!
### Usage
For Velocikey to take effect, there are two steps. First, when compiling your keyboard, you'll need to set `VELOCIKEY_ENABLE=yes` in `rules.mk`, e.g.:
```
MOUSEKEY_ENABLE = no
STENO_ENABLE = no
EXTRAKEY_ENABLE = yes
VELOCIKEY_ENABLE = yes
```
Then, while using your keyboard, you need to also turn it on with the `VK_TOGG` keycode, which toggles the feature on and off.
The following light effects will all be controlled by Velocikey when it is enabled:
- RGB Breathing
- RGB Rainbow Mood
- RGB Rainbow Swirl
- RGB Snake
- RGB Knight
Support for LED breathing effects is planned but not available yet.
As long as Velocikey is enabled, it will control the speed regardless of any other speed setting that your RGB lights are currently on.
### Configuration
Velocikey doesn't currently support any configuration via keyboard settings. If you want to adjust something like the speed increase or decay rate, you would need to edit `velocikey.c` and adjust the values there to achieve the kinds of speeds that you like.

View File

@@ -119,12 +119,12 @@ You can configure the firmware to read key matrix pins on the controller to dete
The first pin is the output pin and the second is the input pin.
Some keyboards have unused intersections in the key matrix. This setting uses one of these unused intersections to determine the handness.
Some keyboards have unused intersections in the key matrix. This setting uses one of these unused intersections to determine the handedness.
Normally, when a diode is connected to an intersection, it is judged to be left. If you add the following definition, it will be judged to be right.
Normally, when a diode is connected to an intersection, it is judged to be right. If you add the following definition, it will be judged to be left.
```c
#define SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT
#define SPLIT_HAND_MATRIX_GRID_LOW_IS_LEFT
```
Note that adding a diode at a previously unused intersection will effectively tell the firmware that there is a key held down at that point. You can instruct qmk to ignore that intersection by defining `MATRIX_MASKED` and then defining a `matrix_row_t matrix_mask[MATRIX_ROWS]` array in your keyboard config. Each bit of a single value (starting form the least-significant bit) is used to tell qmk whether or not to pay attention to key presses at that intersection.
@@ -205,7 +205,7 @@ This sets the pin to be used for serial communication. If you're not using seria
However, if you are using serial and I<sup>2</sup>C on the board, you will need to set this, and to something other than D0 and D1 (as these are used for I<sup>2</sup>C communication).
```c
#define SELECT_SOFT_SERIAL_SPEED {#}`
#define SELECT_SOFT_SERIAL_SPEED {#}
```
If you're having issues with serial communication, you can change this value, as it controls the communication speed for serial. The default is 1, and the possible values are:
@@ -298,7 +298,7 @@ This enables transmitting the pointing device status to the master side of the s
#define SPLIT_HAPTIC_ENABLE
```
This enables triggering of haptic feedback on the slave side of the split keyboard. For DRV2605L this will send the mode, but for solenoids it is expected that the desired mode is already set up on the slave.
This enables the triggering of haptic feedback on the slave side of the split keyboard. This will send information to the slave side such as the mode, dwell, and whether buzz is enabled.
```c
#define SPLIT_ACTIVITY_ENABLE

View File

@@ -104,7 +104,7 @@ After enabling stenography and optionally selecting a protocol, you may also nee
!> If you had *explicitly* set `VIRSTER_ENABLE = no`, none of the serial stenography protocols (GeminiPR, TX Bolt) will work properly. You are expected to either set it to `yes`, remove the line from your `rules.mk` or send the steno chords yourself in an alternative way using the [provided interceptable hooks](#interfacing-with-the-code).
In your keymap, create a new layer for Plover, that you can fill in with the [steno keycodes](#keycode-reference) (you will need to include `keymap_steno.h`, see `planck/keymaps/steno/keymap.c` for an example). Remember to create a key to switch to the layer as well as a key for exiting the layer.
In your keymap, create a new layer for Plover, that you can fill in with the [steno keycodes](#keycode-reference). Remember to create a key to switch to the layer as well as a key for exiting the layer.
Once you have your keyboard flashed, launch Plover. Click the 'Configure...' button. In the 'Machine' tab, select the Stenotype Machine that corresponds to your desired protocol. Click the 'Configure...' button on this tab and enter the serial port or click 'Scan'. Baud rate is fine at 9600 (although you should be able to set as high as 115200 with no issues). Use the default settings for everything else (Data Bits: 8, Stop Bits: 1, Parity: N, no flow control).
@@ -149,8 +149,6 @@ At the end of this scenario given as an example, `chord` would have five bits se
## Keycode Reference :id=keycode-reference
You must include `keymap_steno.h` to your `keymap.c` with `#include "keymap_steno.h"` before you can use these keycodes
> Note: TX Bolt does not support the full set of keys. The TX Bolt implementation in QMK will map the GeminiPR keys to the nearest TX Bolt key so that one key map will work for both.
|GeminiPR|TX Bolt|Steno Key|
@@ -198,7 +196,7 @@ You must include `keymap_steno.h` to your `keymap.c` with `#include "keymap_sten
|`STN_RES2`||(Reset 2)|
|`STN_PWR`||(Power)|
If you do not want to hit two keys with one finger combined keycodes can be used. These are also defined in `keymap_steno.h`, and causes both keys to be reported as pressed or released. To use these keycodes define `STENO_COMBINEDMAP` in your `config.h` file.
If you do not want to hit two keys with one finger combined keycodes can be used. These cause both keys to be reported as pressed or released. To use these keycodes define `STENO_COMBINEDMAP` in your `config.h` file.
|Combined key | Key1 | Key 2 |
|---------------|--------|----------|

View File

@@ -173,7 +173,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case TD(CT_CLN): // list all tap dance keycodes with tap-hold configurations
action = &tap_dance_actions[TD_INDEX(keycode)];
action = &tap_dance_actions[QK_TAP_DANCE_GET_INDEX(keycode)];
if (!record->event.pressed && action->state.count && !action->state.finished) {
tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data;
tap_code16(tap_hold->tap);

View File

@@ -40,7 +40,7 @@ Eg, if you wanted to set the "Adjust" layer to be layer 5, you'd add this to you
| `set_tri_layer_lower_layer(layer)` | Changes the "lower" layer*. |
| `set_tri_layer_upper_layer(layer)` | Changes the "upper" layer*. |
| `set_tri_layer_adjust_layer(layer)` | Changes the "adjust" layer*. |
| `set_tri_layer_layers(lower, upper, adjust)` | Stes the "lower", "upper" and "adjust" layers*. |
| `set_tri_layer_layers(lower, upper, adjust)` | Sets the "lower", "upper" and "adjust" layers*. |
| `get_tri_layer_lower_layer()` | Gets the current "lower" layer. |
| `get_tri_layer_upper_layer()` | Gets the current "upper" layer. |
| `get_tri_layer_adjust_layer()` | Gets the current "adjust" layer. |

View File

@@ -140,7 +140,7 @@ To set the list of enabled input modes, add the `UNICODE_SELECTED_MODES` define
```c
#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX
// or
#define UNICODE_SELECTED_MODES UNICODE_MODE_MAC, UNICODE_MODE_WINCOMPOSE
#define UNICODE_SELECTED_MODES UNICODE_MODE_MACOS, UNICODE_MODE_WINCOMPOSE
```
These modes can then be cycled through using the `UC_NEXT` and `UC_PREV` keycodes. You can also switch to any input mode, even if it is not specified in `UNICODE_SELECTED_MODES`, using their respective keycodes.
@@ -151,7 +151,7 @@ If your keyboard has working EEPROM, it will remember the last used input mode a
### ** macOS **
**Mode Name:** `UNICODE_MODE_MAC`
**Mode Name:** `UNICODE_MODE_MACOS`
macOS has built-in support for Unicode input as its own input source. It supports all possible code points by way of surrogate pairs for code points above `U+FFFF`.

View File

@@ -1,5 +1,7 @@
# Userspace: Sharing Code Between Keymaps
!> Please note, userspace submissions to the upstream `qmk/qmk_firmware` repository are no longer being accepted. The userspace feature itself remains functional and can be configured locally.
If you use more than one keyboard with a similar keymap, you might see the benefit in being able to share code between them. Create your own folder in `users/` named the same as your keymap (ideally your GitHub username, `<name>`) with the following structure:
* `/users/<name>/` (added to the path automatically)

View File

@@ -1,29 +0,0 @@
# Velocikey
Velocikey is a feature that lets you control the speed of lighting effects (like the Rainbow Swirl effect) with the speed of your typing. The faster you type, the faster the lights will go!
## Usage
For Velocikey to take effect, there are two steps. First, when compiling your keyboard, you'll need to set `VELOCIKEY_ENABLE=yes` in `rules.mk`, e.g.:
```
MOUSEKEY_ENABLE = no
STENO_ENABLE = no
EXTRAKEY_ENABLE = yes
VELOCIKEY_ENABLE = yes
```
Then, while using your keyboard, you need to also turn it on with the `VK_TOGG` keycode, which toggles the feature on and off.
The following light effects will all be controlled by Velocikey when it is enabled:
- RGB Breathing
- RGB Rainbow Mood
- RGB Rainbow Swirl
- RGB Snake
- RGB Knight
Support for LED breathing effects is planned but not available yet.
As long as Velocikey is enabled, it will control the speed regardless of any other speed setting that your RGB lights are currently on.
## Configuration
Velocikey doesn't currently support any configuration via keyboard settings. If you want to adjust something like the speed increase or decay rate, you would need to edit `velocikey.c` and adjust the values there to achieve the kinds of speeds that you like.

View File

@@ -2,29 +2,29 @@
QMK has a GPIO control abstraction layer which is microcontroller agnostic. This is done to allow easy access to pin control across different platforms.
## Functions :id=functions
## Macros :id=macros
The following functions provide basic control of GPIOs and are found in `platforms/<platform>/gpio.h`.
The following macros provide basic control of GPIOs and are found in `platforms/<platform>/gpio.h`.
| Function | Description | Old AVR Examples | Old ChibiOS/ARM Examples |
|------------------------------|-----------------------------------------------------|-------------------------------------------------|--------------------------------------------------|
| `setPinInput(pin)` | Set pin as input with high impedance (High-Z) | `DDRB &= ~(1<<2)` | `palSetLineMode(pin, PAL_MODE_INPUT)` |
| `setPinInputHigh(pin)` | Set pin as input with builtin pull-up resistor | `DDRB &= ~(1<<2); PORTB \|= (1<<2)` | `palSetLineMode(pin, PAL_MODE_INPUT_PULLUP)` |
| `setPinInputLow(pin)` | Set pin as input with builtin pull-down resistor | N/A (Not supported on AVR) | `palSetLineMode(pin, PAL_MODE_INPUT_PULLDOWN)` |
| `setPinOutput(pin)` | Set pin as output (alias of `setPinOutputPushPull`) | `DDRB \|= (1<<2)` | `palSetLineMode(pin, PAL_MODE_OUTPUT_PUSHPULL)` |
| `setPinOutputPushPull(pin)` | Set pin as output, push/pull mode | `DDRB \|= (1<<2)` | `palSetLineMode(pin, PAL_MODE_OUTPUT_PUSHPULL)` |
| `setPinOutputOpenDrain(pin)` | Set pin as output, open-drain mode | N/A (Not implemented on AVR) | `palSetLineMode(pin, PAL_MODE_OUTPUT_OPENDRAIN)` |
| `writePinHigh(pin)` | Set pin level as high, assuming it is an output | `PORTB \|= (1<<2)` | `palSetLine(pin)` |
| `writePinLow(pin)` | Set pin level as low, assuming it is an output | `PORTB &= ~(1<<2)` | `palClearLine(pin)` |
| `writePin(pin, level)` | Set pin level, assuming it is an output | `(level) ? PORTB \|= (1<<2) : PORTB &= ~(1<<2)` | `(level) ? palSetLine(pin) : palClearLine(pin)` |
| `readPin(pin)` | Returns the level of the pin | `_SFR_IO8(pin >> 4) & _BV(pin & 0xF)` | `palReadLine(pin)` |
| `togglePin(pin)` | Invert pin level, assuming it is an output | `PORTB ^= (1<<2)` | `palToggleLine(pin)` |
|Macro |Description |
|-------------------------------------|---------------------------------------------------------------------|
|`gpio_set_pin_input(pin)` |Set pin as input with high impedance (High-Z) |
|`gpio_set_pin_input_high(pin)` |Set pin as input with builtin pull-up resistor |
|`gpio_set_pin_input_low(pin)` |Set pin as input with builtin pull-down resistor (unavailable on AVR)|
|`gpio_set_pin_output(pin)` |Set pin as output (alias of `gpio_set_pin_output_push_pull`) |
|`gpio_set_pin_output_push_pull(pin)` |Set pin as output, push/pull mode |
|`gpio_set_pin_output_open_drain(pin)`|Set pin as output, open-drain mode (unavailable on AVR and ATSAM) |
|`gpio_write_pin_high(pin)` |Set pin level as high, assuming it is an output |
|`gpio_write_pin_low(pin)` |Set pin level as low, assuming it is an output |
|`gpio_write_pin(pin, level)` |Set pin level, assuming it is an output |
|`gpio_read_pin(pin)` |Returns the level of the pin |
|`gpio_toggle_pin(pin)` |Invert pin level, assuming it is an output |
## Advanced Settings :id=advanced-settings
Each microcontroller can have multiple advanced settings regarding its GPIO. This abstraction layer does not limit the use of architecture-specific functions. Advanced users should consult the datasheet of their desired device and include any needed libraries. For AVR, the standard avr/io.h library is used; for STM32, the ChibiOS [PAL library](https://chibios.sourceforge.net/docs3/hal/group___p_a_l.html) is used.
Each microcontroller can have multiple advanced settings regarding its GPIO. This abstraction layer does not limit the use of architecture-specific functions. Advanced users should consult the datasheet of their desired device. For AVR, the standard `avr/io.h` library is used; for STM32, the ChibiOS [PAL library](https://chibios.sourceforge.net/docs3/hal/group___p_a_l.html) is used.
## Atomic Operation
## Atomic Operation :id=atomic-operation
The above functions are not always guaranteed to work atomically. Therefore, if you want to prevent interruptions in the middle of operations when using multiple combinations of the above functions, use the following `ATOMIC_BLOCK_FORCEON` macro.

View File

@@ -169,11 +169,11 @@ The `post_rules.mk` file can interpret `features` of a keyboard-level before `co
ifeq ($(strip $(RGBLED_OPTION_TYPE)),backlight)
RGBLIGHT_ENABLE = yes
OPT_DEFS += -DRGBLED_NUM=30
OPT_DEFS += -DRGBLIGHT_LED_COUNT=30
endif
ifeq ($(strip $(RGBLED_OPTION_TYPE)),underglow)
RGBLIGHT_ENABLE = yes
OPT_DEFS += -DRGBLED_NUM=6
OPT_DEFS += -DRGBLIGHT_LED_COUNT=6
endif
```

View File

@@ -2,6 +2,18 @@
The I2C Master drivers used in QMK have a set of common functions to allow portability between MCUs.
## Usage :id=usage
In most cases, the I2C Master driver code is automatically included if you are using a feature or driver which requires it, such as [OLED](feature_oled_driver.md).
However, if you need to use the driver standalone, add the following to your `rules.mk`:
```make
I2C_DRIVER_REQUIRED = yes
```
You can then call the I2C API by including `i2c_master.h` in your code.
## I2C Addressing :id=note-on-i2c-addresses
All of the addresses expected by this driver should be pushed to the upper 7 bits of the address byte. Setting
@@ -115,8 +127,8 @@ This function is weakly defined, meaning it can be overridden if necessary for y
```c
void i2c_init(void) {
setPinInput(B6); // Try releasing special pins for a short time
setPinInput(B7);
gpio_set_pin_input(B6); // Try releasing special pins for a short time
gpio_set_pin_input(B7);
wait_ms(10); // Wait for the release to happen
palSetPadMode(GPIOB, 6, PAL_MODE_ALTERNATE(4) | PAL_STM32_OTYPE_OPENDRAIN | PAL_STM32_PUPDR_PULLUP); // Set B6 to I2C function
@@ -126,23 +138,6 @@ void i2c_init(void) {
---
### `i2c_status_t i2c_start(uint8_t address, uint16_t timeout)` :id=api-i2c-start
Start an I2C transaction.
#### Arguments :id=api-i2c-start-arguments
- `uint8_t address`
The 7-bit I2C address of the device (ie. without the read/write bit - this will be set automatically).
- `uint16_t timeout`
The time in milliseconds to wait for a response from the target device.
#### Return Value :id=api-i2c-start-return
`I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`.
---
### `i2c_status_t i2c_transmit(uint8_t address, uint8_t *data, uint16_t length, uint16_t timeout)` :id=api-i2c-transmit
Send multiple bytes to the selected I2C device.
@@ -185,11 +180,11 @@ Receive multiple bytes from the selected I2C device.
---
### `i2c_status_t i2c_writeReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` :id=api-i2c-writereg
### `i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` :id=api-i2c-write-register
Writes to a register with an 8-bit address on the I2C device.
#### Arguments :id=api-i2c-writereg-arguments
#### Arguments :id=api-i2c-write-register-arguments
- `uint8_t devaddr`
The 7-bit I2C address of the device.
@@ -202,17 +197,17 @@ Writes to a register with an 8-bit address on the I2C device.
- `uint16_t timeout`
The time in milliseconds to wait for a response from the target device.
#### Return Value :id=api-i2c-writereg-return
#### Return Value :id=api-i2c-write-register-return
`I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`.
---
### `i2c_status_t i2c_writeReg16(uint8_t devaddr, uint16_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` :id=api-i2c-writereg16
### `i2c_status_t i2c_write_register16(uint8_t devaddr, uint16_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` :id=api-i2c-write-register16
Writes to a register with a 16-bit address (big endian) on the I2C device.
#### Arguments :id=api-i2c-writereg16-arguments
#### Arguments :id=api-i2c-write-register16-arguments
- `uint8_t devaddr`
The 7-bit I2C address of the device.
@@ -225,17 +220,17 @@ Writes to a register with a 16-bit address (big endian) on the I2C device.
- `uint16_t timeout`
The time in milliseconds to wait for a response from the target device.
#### Return Value :id=api-i2c-writereg16-return
#### Return Value :id=api-i2c-write-register16-return
`I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`.
---
### `i2c_status_t i2c_readReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` :id=api-i2c-readreg
### `i2c_status_t i2c_read_register(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` :id=api-i2c-read-register
Reads from a register with an 8-bit address on the I2C device.
#### Arguments :id=api-i2c-readreg-arguments
#### Arguments :id=api-i2c-read-register-arguments
- `uint8_t devaddr`
The 7-bit I2C address of the device.
@@ -246,17 +241,17 @@ Reads from a register with an 8-bit address on the I2C device.
- `uint16_t timeout`
The time in milliseconds to wait for a response from the target device.
#### Return Value :id=api-i2c-readreg-return
#### Return Value :id=api-i2c-read-register-return
`I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`.
---
### `i2c_status_t i2c_readReg16(uint8_t devaddr, uint16_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)`
### `i2c_status_t i2c_read_register16(uint8_t devaddr, uint16_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` :id=api-i2c-read-register16
Reads from a register with a 16-bit address (big endian) on the I2C device.
#### Arguments :id=api-i2c-readreg16-arguments
#### Arguments :id=api-i2c-read-register16-arguments
- `uint8_t devaddr`
The 7-bit I2C address of the device.
@@ -267,12 +262,27 @@ Reads from a register with a 16-bit address (big endian) on the I2C device.
- `uint16_t timeout`
The time in milliseconds to wait for a response from the target device.
#### Return Value :id=api-i2c-readreg16-return
#### Return Value :id=api-i2c-read-register16-return
`I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`.
---
### `i2c_status_t i2c_stop(void)` :id=api-i2c-stop
### `i2c_status_t i2c_ping_address(uint8_t address, uint16_t timeout)` :id=api-i2c-ping-address
Stop the current I2C transaction.
Pings the I2C bus for a specific address.
On ChibiOS a "best effort" attempt is made by reading a single byte from register 0 at the requested address. This should generally work except for I2C devices that do not not respond to a register 0 read request, which will result in a false negative result (unsucessful response to ping attempt).
This function is weakly defined, meaning it can be overridden if necessary for your particular use case:
#### Arguments
- `uint8_t address`
The 7-bit I2C address of the device (ie. without the read/write bit - this will be set automatically).
- `uint16_t timeout`
The time in milliseconds to wait for a response from the target device.
#### Return Value
`I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`.

View File

@@ -112,7 +112,6 @@
* [分割キーボード](ja/feature_split_keyboard.md)
* [速記](ja/feature_stenography.md)
* [感熱式プリンタ](ja/feature_thermal_printer.md)
* [Velocikey](ja/feature_velocikey.md)
* QMK の開発
* [PR チェックリスト](ja/pr_checklist.md)

View File

@@ -248,7 +248,7 @@ QMK での全ての利用可能な設定にはデフォルトがあります。
* high/low ピンを使って左右を決定します。low = 右手、high = 左手。`B7` を使っているピンに置き換えます。これはオプションで、`SPLIT_HAND_PIN` が未定義のままである場合、EE_HANDS メソッドまたは標準の Let's Splitが使っている MASTER_LEFT / MASTER_RIGHT 定義をまだ使うことができます。
* `#define SPLIT_HAND_MATRIX_GRID <out_pin>,<in_pin>`
* 左右はキーマトリックスのキースイッチが存在しない交点を使って決定されます。通常、この交点が短絡している(ローレベル)のときに側と見なされます。もし `#define SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT` が定義されている場合は、ローレベルの時に側と決定されます。
* 左右はキーマトリックスのキースイッチが存在しない交点を使って決定されます。通常、この交点が短絡している(ローレベル)のときに側と見なされます。もし `#define SPLIT_HAND_MATRIX_GRID_LOW_IS_LEFT` が定義されている場合は、ローレベルの時に側と決定されます。
* `#define EE_HANDS` (`SPLIT_HAND_PIN``SPLIT_HAND_MATRIX_GRID` が定義されていない場合のみ動作します)
* `eeprom-lefthand.eep`/`eeprom-righthand.eep` がそれぞれの半分に書き込まれた後で、EEPROM 内に格納されている左右の設定の値を読み込みます。

View File

@@ -110,11 +110,11 @@ enum my_keycodes {
開発環境をセットアップした場合は、プルリクエストを開く前に以下のコマンドを `qmk_firmware/` フォルダから実行することで、あなたの変更をプレビューすることができます:
./bin/qmk docs
qmk docs
または、Python 3 のみがインストールされている場合:
python3 -m http.server 8936
python3 -m http.server 8936 --directory docs
その後、ウェブブラウザで、`http://localhost:8936/` を表示します。

View File

@@ -139,8 +139,8 @@ BOOTMAGIC_ENABLE = lite
さらに、どのキーを使うかを指定したほうが良いかもしれません。これは普通ではないマトリックスを持つキーボードで特に便利です。そのためには、使いたいキーの行と列を指定する必要があります。`config.h` ファイルにこれらのエントリを追加します:
```c
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 1
#define BOOTMAGIC_ROW 0
#define BOOTMAGIC_COLUMN 1
```
デフォルトでは、これらは 0 と 0 に設定されます。これは通常はほとんどのキーボードで "ESC" キーです。
@@ -154,8 +154,8 @@ BOOTMAGIC_ENABLE = lite
`SPLIT_HAND_PIN` のようなオプションで、左右の設定があらかじめ決められている場合は、キーボードの左右で別のキーを設定する必要があるかもしれません。これを行うには、`config.h` ファイルに以下のエントリを追加します。
```c
#define BOOTMAGIC_LITE_ROW_RIGHT 4
#define BOOTMAGIC_LITE_COLUMN_RIGHT 1
#define BOOTMAGIC_ROW_RIGHT 4
#define BOOTMAGIC_COLUMN_RIGHT 1
```
デフォルトでは、これらの値は設定されていません。
@@ -172,7 +172,7 @@ void bootmagic_lite(void) {
wait_ms(DEBOUNCE * 2);
matrix_scan();
if (matrix_get_row(BOOTMAGIC_LITE_ROW) & (1 << BOOTMAGIC_LITE_COLUMN)) {
if (matrix_get_row(BOOTMAGIC_ROW) & (1 << BOOTMAGIC_COLUMN)) {
// ブートローダにジャンプする。
bootloader_jump();
}

View File

@@ -108,10 +108,10 @@ SPLIT_TRANSPORT = custom
キーマトリックスに未使用の交点があるキーボードがあります。この設定は、左右の決定にこれらの未使用の交点の1つを使用します。
通常、ダイオードが交点に接続されている場合、側と判断されます。次の定義を追加すると、側と判断されます。
通常、ダイオードが交点に接続されている場合、側と判断されます。次の定義を追加すると、側と判断されます。
```c
#define SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT
#define SPLIT_HAND_MATRIX_GRID_LOW_IS_LEFT
```
#### EEPROM による左右の設定

View File

@@ -1,34 +0,0 @@
# Velocikey
<!---
original document: 0.8.147:docs/feature_velocikey.md
git diff 0.8.147 HEAD -- docs/feature_velocikey.md | cat
-->
Velocikey は入力の速度を使って(レインボー渦巻効果のような)ライト効果の速度を制御できる機能です。速く入力すればするほどライトが速くなります!
## 使用法
Velocikey を使うためには、2つのステップがあります。最初に、キーボードをコンパイルする時に、`rules.mk``VELOCIKEY_ENABLE=yes` を設定する必要があります。例えば:
```
MOUSEKEY_ENABLE = no
STENO_ENABLE = no
EXTRAKEY_ENABLE = yes
VELOCIKEY_ENABLE = yes
```
次に、キーボードの使用中に、VLK_TOG キーコードを使って Velocikey を有効にする必要もあります。これは機能をオンおよびオフにします。
以下の全てのライト効果が、Velocikey を有効にすることで制御されます:
- RGB 明滅動作
- RGB レインボームード
- RGB レインボー渦巻
- RGB スネーク
- RGB ナイト
LED 明滅動作の効果のサポートは計画されていますがまだ利用できません。
Velocikey が有効になっている限り、現在オンになっている RGB ライトの他の全ての速度設定に関係なく、速度が制御されます。
## 設定
Velocikey は現在のところキーボード設定を介したどのような設定もサポートしません。速度の増加あるいは減少率などを調整したい場合は、`velocikey.c` を編集し、そこで値を調整して、好みの速度を実現する必要があります。

View File

@@ -23,12 +23,11 @@ I2C アドレスと他の技術詳細について、さらなる情報を得る
| 関数 | 説明 |
|-------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `void i2c_init(void);` | I2C ドライバを初期化します。他のあらゆるトランザクションを開始する前に、この関数を一度だけ呼ぶ必要があります。 |
| `i2c_status_t i2c_start(uint8_t address, uint16_t timeout);` | I2C トランザクションを開始します。アドレスは方向ビットのない7ビットスレーブアドレスです。 |
| `i2c_status_t i2c_transmit(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout);` | I2C 経由でデータを送信します。アドレスは方向ビットのない7ビットスレーブアドレスです。トランザクションのステータスを返します。 |
| `i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout);` | I2C 経由でデータを受信します。アドレスは方向ビットのない7ビットスレーブアドレスです。 `length` で指定した長さのバイト列を `data` に保存し、トランザクションのステータスを返します。 |
| `i2c_status_t i2c_writeReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout);` | `i2c_transmit` と同様ですが、 `regaddr` でスレーブのデータ書き込み先のレジスタを指定します。 |
| `i2c_status_t i2c_readReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout);` | `i2c_receive` と同様ですが、 `regaddr` でスレーブのデータ読み込み先のレジスタを指定します。 |
| `i2c_status_t i2c_stop(void);` | I2C トランザクションを終了します。 |
| `i2c_status_t i2c_ping_address(uint8_t address, uint16_t timeout);` | I2C アドレスをテストします。アドレスは方向ビットのない7ビットスレーブアドレスです。 |
### 関数の戻り値 :id=function-return

View File

@@ -160,7 +160,7 @@ bool get_retro_tapping(uint16_t keycode, keyrecord_t *record) {
「キー別」の関数全てにキーレコードを含んでいることに気付いたかもしれません。そしてなぜそうしたのか不思議に思っているかもしれません。
まぁ、それは単純に本当にカスタマイズのためです。ただし、具体的には、それはキーボードの配線方法によって異なります。例えば、各行が実際にキーボードのマトリックスの1行を使っている場合、キーコード全体をチェックする代わりに、`if (record->event.row == 3)` を使うほうが簡単かもしれません。これは、ホームキー行でタップホールドタイプのキーを使っている人にとって特に便利です。そのため、通常のタイピングを妨げないように微調整することができるのではないでしょうか。
まぁ、それは単純に本当にカスタマイズのためです。ただし、具体的には、それはキーボードの配線方法によって異なります。例えば、各行が実際にキーボードのマトリックスの1行を使っている場合、キーコード全体をチェックする代わりに、`if (record->event.key.row == 3)` を使うほうが簡単かもしれません。これは、ホームキー行でタップホールドタイプのキーを使っている人にとって特に便利です。そのため、通常のタイピングを妨げないように微調整することができるのではないでしょうか。
## `*_kb` や `*_user` 関数が無いのはなぜですか?

View File

@@ -125,7 +125,7 @@ At the top of the file you'll find this:
These are some handy definitions we can use when building our keymap and our custom function. The `GRAVE_MODS` definition will be used later in our custom function, and the following `_BL`, `_FL`, and `_CL` defines make it easier to refer to each of our layers.
Note: You may also find some older keymap files may also have a define(s) for `_______` and/or `XXXXXXX`. These can be used in place for `KC_TRNS` and `KC_NO` respectively, making it easier to see what keys a layer is overriding. These definitions are now unecessary, as they are included by default.
Note: You may also find some older keymap files may also have a define(s) for `_______` and/or `XXXXXXX`. These can be used in place for `KC_TRNS` and `KC_NO` respectively, making it easier to see what keys a layer is overriding. These definitions are now unnecessary, as they are included by default.
### Layers and Keymaps

View File

@@ -143,13 +143,13 @@ Replace `username.json` with the JSON file name that was downloaded from [QMK Co
If you have completed all steps correctly, the folder `qmk_keymap/` will contain the following files:
```
|-- .github
| `-- workflows
| `-- build.yml
|-- rules.mk
|-- config.h
|-- source.c
|-- username.json
├── .github
│   └── workflows
│   └── build.yml
├── rules.mk
├── config.h
├── source.c
└── username.json
```
To commit and push them into GitHub, run the following commands (replacing `gh-username` with your GitHub user name):

View File

@@ -0,0 +1,96 @@
# External QMK Userspace
QMK Firmware now officially supports storing user keymaps outside of the normal QMK Firmware repository, allowing users to maintain their own keymaps without having to fork, modify, and maintain a copy of QMK Firmware themselves.
External Userspace mirrors the structure of the main QMK Firmware repository, but only contains the keymaps that you wish to build. You can still use `keyboards/<my keyboard>/keymaps/<my keymap>` to store your keymaps, or you can use the `layouts/<my layout>/<my keymap>` system as before -- they're just stored external to QMK Firmware.
The build system will still honor the use of `users/<my keymap>` if you rely on the traditional QMK Firmware [userspace feature](feature_userspace.md) -- it's now supported externally too, using the same location inside the External Userspace directory.
Additionally, there is first-class support for using GitHub Actions to build your keymaps, allowing you to automatically compile your keymaps whenever you push changes to your External Userspace repository.
!> External Userspace is new functionality and may have issues. Tighter integration with the `qmk` command will occur over time.
?> Historical keymap.json and GitHub-based firmware build instructions can be found [here](newbs_building_firmware_workflow.md). This document supersedes those instructions, but they should still function correctly.
## Setting up QMK Locally
If you wish to build on your local machine, you will need to set up QMK locally. This is a one-time process, and is documented in the [newbs setup guide](https://docs.qmk.fm/#/newbs).
!> If you wish to use any QMK CLI commands related to manipulating External Userspace definitions, you will currently need a copy of QMK Firmware as well.
!> Building locally has a much shorter turnaround time than waiting for GitHub Actions to complete.
## External Userspace Repository Setup (forked on GitHub)
A basic skeleton External Userspace repository can be found [here](https://github.com/qmk/qmk_userspace). If you wish to keep your keymaps on GitHub (strongly recommended!), you can fork the repository and use it as a base:
![Userspace Fork](https://i.imgur.com/hcegguh.png)
Going ahead with your fork will copy it to your account, at which point you can clone it to your local machine and begin adding your keymaps:
![Userspace Clone](https://i.imgur.com/CWYmsk8.png)
```sh
cd $HOME
git clone https://github.com/{myusername}/qmk_userspace.git
qmk config user.overlay_dir="$(realpath qmk_userspace)"
```
## External Userspace Setup (locally stored only)
If you don't want to use GitHub and prefer to keep everything local, you can clone a copy of the default External Userspace locally instead:
```sh
cd $HOME
git clone https://github.com/qmk/qmk_userspace.git
qmk config user.overlay_dir="$(realpath qmk_userspace)"
```
## Adding a Keymap
_These instructions assume you have already set up QMK locally, and have a copy of the QMK Firmware repository on your machine._
Keymaps within External Userspace are defined in the same way as they are in the main QMK repository. You can either use the `qmk new-keymap` command to create a new keymap, or manually create a new directory in the `keyboards` directory.
Alternatively, you can use the `layouts` directory to store your keymaps, using the same layout system as the main QMK repository -- if you choose to do so you'll want to use the path `layouts/<layout name>/<keymap name>/keymap.*` to store your keymap files, where `layout name` matches an existing layout in QMK, such as `tkl_ansi`.
After creating your new keymap, building the keymap matches normal QMK usage:
```sh
qmk compile -kb <keyboard> -km <keymap>
```
!> The `qmk config user.overlay_dir=...` command must have been run when cloning the External Userspace repository for this to work correctly.
## Adding the keymap to External Userspace build targets
Once you have created your keymap, if you want to use GitHub Actions to build your firmware, you will need to add it to the External Userspace build targets. This is done using the `qmk userspace-add` command:
```sh
# for a keyboard/keymap combo:
qmk userspace-add -kb <keyboard> -km <keymap>
# or, for a json-based keymap (if kept "loose"):
qmk userspace-add <relative/path/to/my/keymap.json>
```
This updates the `qmk.json` file in the root of your External Userspace directory. If you're using a git repository to store your keymaps, now is a great time to commit and push to your own fork.
## Compiling External Userspace build targets
Once you have added your keymaps to the External Userspace build targets, you can compile all of them at once using the `qmk userspace-compile` command:
```sh
qmk userspace-compile
```
All firmware builds you've added to the External Userspace build targets will be built, and the resulting firmware files will be placed in the root of your External Userspace directory.
## Using GitHub Actions
GitHub Actions can be used to automatically build your keymaps whenever you push changes to your External Userspace repository. If you have set up your list of build targets, this is as simple as enabling workflows in the GitHub repository settings:
![Repo Settings](https://i.imgur.com/EVkxOt1.png)
Any push will result in compilation of all configured builds, and once completed a new release containing the newly-minted firmware files will be created on GitHub, which you can subsequently download and flash to your keyboard:
![Releases](https://i.imgur.com/zmwOL5P.png)

View File

@@ -56,7 +56,7 @@ QMK maintains a Homebrew tap and formula which will automatically install the CL
You will need to install Homebrew. Follow the instructions on https://brew.sh.
!> **NOTE:** If you are using Apple Silicon, such as the M1, you will need to install a rosetta compatible version of Homebrew. This version does not override the base Homebrew. This can be done by running `arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"`. See here: [Rosetta-compatible Homebrew](https://stackoverflow.com/questions/64882584/how-to-run-the-homebrew-installer-under-rosetta-2-on-m1-macbook)
?> If you are using an Apple Silicon machine, the installation process will take significantly longer because GitHub actions do not have native runners to build binary packages for the ARM and AVR toolchains.
#### Installation
@@ -64,10 +64,6 @@ Install the QMK CLI by running:
brew install qmk/qmk/qmk
Install the QMK CLI on an Apple Silicon Mac by running:
arch -x86_64 brew install qmk/qmk/qmk
### ** Linux/WSL **
?> **Note for WSL users**: By default, the installation process will clone the QMK repository into your WSL home directory, but if you have cloned manually, ensure that it is located inside the WSL instance instead of the Windows filesystem (ie. not in `/mnt`), as accessing it is currently [extremely slow](https://github.com/microsoft/WSL/issues/4197).

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