Compare commits

...

679 Commits

Author SHA1 Message Date
lsh4711
5a6595357d Fix path typo related RP2040 (#25069)
Fix path typo
2025-03-28 21:03:59 +11:00
Geoffrey Frogeye
25fb4a498a Allow AnnePro2 to reboot (#24886)
Without this, the QK_REBOOT key did nothing.
2025-03-28 20:19:07 +11:00
dependabot[bot]
6f3b494a4d Bump vite from 5.4.12 to 5.4.15 in /builddefs/docsgen (#25065)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.12 to 5.4.15.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.4.15/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.15/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-28 08:56:08 +00:00
Hyphen-ated
d4120b1def Add "Large Lad" keyboard (#24727)
Co-authored-by: jack <jack@pngu.org>
2025-03-28 01:27:54 -07:00
Sắn
ce9713c47d Add support for Starry FRL (#24626)
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2025-03-28 01:27:36 -07:00
Erik Peyronson
64fe4aff31 Add handwired/erikpeyronson/erkbd (#25030)
Co-authored-by: Erik Peyronson <erik.peyronson@gmail.com>
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2025-03-27 23:25:39 -07:00
Joel Challis
a3c39bde0e Create tags when lib/python changes (#25064)
Create tags when lib/python changes
2025-03-27 06:23:28 +11:00
Grigory Avdyushin
ce2f7d86be Franky36 handwired keyboard (#25029) 2025-03-22 22:17:05 -07:00
Dasky
6a947fa534 Add Mechboards Crkbd (#24993) 2025-03-21 18:00:28 +00:00
plodah
f4dfa218ff fix swapped encoder pins on ploopy thumb rev1_001 (#25044)
fix swapped pins on ploopy thumb rev1_001 encoder
2025-03-20 15:34:14 -07:00
uv777bk
f6dbb56a10 Update Lighting Mode Animations on Monsgeek M5 (#24981)
Update keyboard.json
2025-03-21 09:22:43 +11:00
Max Rumpf
894b9c458d Enable mouse key feature and disable leader key on Maxr1998/Phoebe (#24982)
* Enable mousekey support on Maxr1998/Phoebe

* Add GPLv2 license header
2025-03-21 09:22:02 +11:00
Icy Avocado
9f44488bb1 Add directpins 21 keys pico (#24919)
* Add directpins 21 keys pico
- https://learn.adafruit.com/diy-pico-mechanical-keyboard-with-fritzing-circuitpython/21-key-pico-keyboard

* Rename from 21keys to pico_pad

* Add pico_pad readme

* Update bootloader instruction

---------

Co-authored-by: Dai <dai@ovacoda.com>
2025-03-21 09:21:18 +11:00
Drashna Jaelre
a958276a76 Add Super Alt-Tab macro example as module (#24970)
* Add Super Alt-Tab macro example as module

* Make module more configurable

* remove unneeded comments

Co-authored-by: jack <jack@pngu.org>

* Update modules/qmk/super_alt_tab/super_alt_tab.c

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

---------

Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2025-03-21 09:12:46 +11:00
Akshay Atam
7fd12c2b98 Ducky one2mini ansi tsangan layout (#24909)
* Added ANSI Tsangan keymap for Ducky One2 Mini

* Updated keyboard.json to support ANSI Tsangan layout for Ducky One2 Mini
2025-03-21 09:00:01 +11:00
mikiya418
3a8c76fae5 Develop 5keys (#24555)
* [Keyboard]Add 5keys

* Add files via upload

* Delete 5keys.json

* Add files via upload

* Delete 5keys_default.hex

* Add keyboard 5keys

* Add Copylight

* Update keyboards/5keys/keyboard.json

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

* Update keyboards/5keys/keyboard.json

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

* Update readme.md

---------

Co-authored-by: Drashna Jaelre <drashna@live.com>
2025-03-21 08:54:54 +11:00
Duncan Sutherland
96882c6a67 Correct json for Fullsize JIS Community Layouts (#23660)
initial commit
2025-03-21 08:44:19 +11:00
Anthony Abruzzini
c5232ba699 Fix typo in docs: split_keyboard.md SPLIT_USB_DETECT ("theres's -> "there's") (#24984)
* Fix typo "theres's"

* Update docs/features/split_keyboard.md

Co-authored-by: jack <jack@pngu.org>

---------

Co-authored-by: jack <jack@pngu.org>
2025-03-21 08:35:58 +11:00
Andrew Kannan
e7c5695a0c Minor keymap fix on Cerberus HS (#25043) 2025-03-20 05:06:54 +00:00
Wilson Pika Choo
46829663aa [Keyboard] Change uzu42 usb.vid (#25014)
change generic vendor code
2025-03-19 10:33:53 -06:00
Nick Brassel
386a5019a8 Fixup MSYS + unix-style paths in Community Modules. (#25012)
Fixup MSYS + unix-style paths.
2025-03-19 12:45:28 +11:00
Nick Brassel
271efeb8bc Latest batch of license violations. (#25031) 2025-03-18 15:48:27 +00:00
Nick Brassel
95223aa872 Latest batch of license violations as per #24085. (#25023)
* Latest batch of license violations as per #24085.

* No links.
2025-03-18 06:07:24 +11:00
Joel Challis
c6446aeaf9 Bump tj-actions/changed-files from 45 to 46 (#25020) 2025-03-16 08:44:31 +00:00
André Cruz
65aef7be95 [Keyboard] Add Sofle Choc Prog from keebart (#24974) 2025-03-13 14:04:32 -07:00
Joel Challis
8ae5d34c0d keyten/kt60_mu - Add missing header guard (#25011) 2025-03-14 08:00:58 +11:00
Ivan Gromov
25af20bef4 [Keyboard] Add kt60-MU PCB (#24797)
* Add kt60-MU

* Adding some license headers

* Update keyboards/keyten/kt60_mu/keyboard.json

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

* Update keyboards/keyten/kt60_mu/keyboard.json

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

* Update keyboard.json

* Update keyboard.json

* Update keyboards/keyten/kt60_mu/keyboard.json

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

* Update keyboards/keyten/kt60_mu/keyboard.json

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

---------

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2025-03-13 13:20:56 -06:00
Dasky
84f9b6dd3e Add Mechboards Sofle (#25004)
* add sofle

* fix readme
2025-03-11 02:42:33 -07:00
Christian C. Berclaz
a70288bc4a New standard layout for Mechlovin' Zed60 (60_tsangan_hhkb) (#24801)
* Added a default firmware and layout for the WindStudio Wind X R1
keyboard.

* Wind X R1: cleaned-up the folders to make clear that this firmware is
for the release 1 of this keyboard.

* Delete keyboards/windstudio/wind_x/R1 directory

Removing the uppercase R1 folder

* feat(mechlovin/zed60): Added the missing standard 60_tsangan_hhkb

* style(mechlovin/zed60): Ran qmk format-json -i on keyboard.json
2025-03-08 23:59:02 -08:00
Joel Challis
3c6a691126 keychron/c*_pro_v2: Migrate DIP_SWITCH_PINS (#24978) 2025-03-06 23:17:21 +00:00
Joel Challis
0302171fac Remove invalid RGB Matrix effects (#24977) 2025-03-04 23:40:28 +00:00
Joel Challis
fcfe0e8a95 Fix xelus/valor/rev3 compilation (#24976) 2025-03-04 23:40:08 +00:00
dnlnm
f0a5db96c8 Add keyboard Cloak (#24858)
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2025-03-03 11:22:37 -08:00
takashicompany
c2979e309f Add new keyboard "Palmslave" (#24814)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2025-03-03 11:21:47 -08:00
Armand du Parc Locmaria
b2ee1612fa Fix Lily58 Lite Rev3 reversed columns (#24968) 2025-03-03 11:18:33 -08:00
floookay
cc09f17111 add keyboard: zwerg (#24918)
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Joel Challis <git@zvecr.com>
2025-03-02 21:34:16 -08:00
yiancar
a585bd08a3 Keycult Zero (#24927)
* Initial Commit for Keycult Zero

* Update keyboards/keycult/keycult_zero/keycult_zero.c

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

* Update keyboards/keycult/keycult_zero/rules.mk

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

---------

Co-authored-by: yiancar <yiancar@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2025-03-02 19:32:25 -08:00
leah-splitkb
cb6e1c1af5 Add splitkb.com's Elora (#22557)
* Add splitkb's Elora

* WIP

* Make requested changes

* fix missing call to keyboard init user for elora

* sync vial_qmk with qmk

* Add fixes

* Add encoder quadrature and update files

* Update Readme

* Implement changes

* Remove encoder driver from keyboard.json

* make requested changed

* Implement changes and remove myriad_task as it wasn't actually doing anything.

* Remove myriad.h from matrix.c

* Simplify OLED code debug

* Update RGB keycodes (qmk#24484)

* remove rules.mk (qmk#23281)

* Add matrix state sync

---------

Co-authored-by: NapOli1084 <10320176+NapOli1084@users.noreply.github.com>
Co-authored-by: harveysch <126267034+harvey-splitkb@users.noreply.github.com>
Co-authored-by: harvey <harvey@splitkb.com>
Co-authored-by: VeyPatch <126267034+VeyPatch@users.noreply.github.com>
2025-03-02 14:33:03 -07:00
Xelus22
563eb6fdc9 [Keyboard] Valor Rev3 (#22581)
* initial valor

* update

* fixup and move to info.json

* clean up keymap

* code review from lesshonor

* Update keyboards/xelus/valor/rev3/readme.md

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

* Update readme.md

* Update keyboards/xelus/valor/rev3/rev3.c

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

* Update rev3.c

* Remove custom rev3.c

* remove via keymap

* remove empty rules.mk

* Update keyboards/xelus/valor/rev3/keymaps/default/keymap.c

Co-authored-by: jack <jack@pngu.org>

---------

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Xelus22 <>
Co-authored-by: jack <jack@pngu.org>
2025-03-02 14:04:33 -07:00
adophoxia
6c10839e33 Add Keychron C2 Pro V2 (#24900)
Same changes as for C1 Pro V2
2025-03-01 17:57:15 -07:00
adophoxia
abea50c26e Add Keychron C1 Pro V2 (#24899)
* Add C1 Pro V2

* Remove default values for f401xC generic board definition

* Update clang and copyright years

* Add version description
2025-03-01 17:48:59 -07:00
blindassassin111
acec6904d8 Adding support for the VKR 94 (#24883)
* Adding support for the VKR 94

* Update keyboards/viktus/vkr94/keyboard.json

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

* Delete keyboards/viktus/vkr94/config.h

* Delete keyboards/viktus/vkr94/rules.mk

* Update readme.md

---------

Co-authored-by: Joel Challis <git@zvecr.com>
2025-03-01 15:24:15 -07:00
suikagiken
655bf4008a Add keyboard suika15tone (#24947)
* Add keyboard suika15tone

* Update keyboards/suikagiken/suika15tone/keyboard.json

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

---------

Co-authored-by: Drashna Jaelre <drashna@live.com>
2025-03-01 14:50:10 -07:00
era
516fa90f99 Add Chickpad (#24895)
* Add ChickPad

Add ChickPad

* Add Chickpad

Add Chickpad

* Add PCB image

Add PCB image

* Update keyboards/era/sirind/chickpad/keyboard.json

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

* Update keyboards/era/sirind/chickpad/config.h

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

* Update keyboards/era/sirind/chickpad/keymaps/default/keymap.c

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

* Update keyboards/era/sirind/chickpad/readme.md

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

---------

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: jack <jack@pngu.org>
2025-03-01 14:25:26 -07:00
Eric Banker
0419cd2eed [Docs] Fix example code in quantum_painter.md (#24897)
https://github.com/qmk/qmk_firmware/issues/24896
2025-03-01 14:01:30 -07:00
telybelly
a3a3af1184 Add Janky No.9 (#24910)
* Add Janky No.9

Add Janky No.9

* Update readme.md

* Update keyboard.json

updated as per waffle87 suggestions, and run qmk format-json

* Apply suggestions from code review

updated as per suggestions from zvecr

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

---------

Co-authored-by: Joel Challis <git@zvecr.com>
2025-03-01 13:59:52 -07:00
arcmags
88d1f61f10 Add tkl_f13_ansi_tsangan community layout to novelkeys/nk87* (#24730)
* missing LAYOUTS added to novelkeys/nk87*/rules.mk

* Revert "missing LAYOUTS added to novelkeys/nk87*/rules.mk"

This reverts commit 43917bfc36.

* missing community layouts added to novelkeys/nk87*/keyboard.json
2025-03-01 13:48:11 -07:00
Danny
e0e96c2a75 Add Handwired Cherry Protype (#24806)
* Add handwired Cherry Protype

* Fix instructions

* Replace tabs with spaces

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

* Update keyboards/handwired/protype/keyboard.json

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

---------

Co-authored-by: Drashna Jaelre <drashna@live.com>
2025-03-01 13:47:16 -07:00
Dasky
a4d86a63f2 Add Mechboards Lily58 variant and common code. (#24937)
* Add lily58 and common code

* Apply suggestions from code review

Co-authored-by: jack <jack@pngu.org>

* Apply suggestions from code review

Co-authored-by: jack <jack@pngu.org>

---------

Co-authored-by: jack <jack@pngu.org>
2025-02-28 11:07:51 -08:00
Nick Brassel
a63fd7f01c Merge remote-tracking branch 'upstream/develop' 2025-02-28 09:23:04 +11:00
Nick Brassel
cdb865cf60 Merge point for 2025q1 breaking change. 2025-02-28 09:20:58 +11:00
Joel Challis
c4aaab5fa3 2025q1 develop changelog (#24949)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2025-02-28 09:14:32 +11:00
Nick Brassel
1efc82403b Community modules (#24848) 2025-02-26 22:25:41 +11:00
Joel Beckmeyer
63b095212b fix EEPROM driver for STM32L0/1 cat.1 devices (#24928) 2025-02-26 22:25:01 +11:00
Joel Challis
63daf94ee6 Migrate some DEFAULT_FOLDER to keyboard_aliases.hjson (#24938) 2025-02-22 01:48:42 +00:00
ploopyco
50967dbe7e Updates to Ploopy Classic, Mouse, and Thumb for RP2040 hardware upgrade (#24880)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2025-02-21 00:01:29 -08:00
QMK Bot
2f27b3dc78 Merge remote-tracking branch 'origin/master' into develop 2025-02-20 14:07:54 +00:00
dependabot[bot]
6d0e5728aa Bump JamesIves/github-pages-deploy-action from 4.7.2 to 4.7.3 (#24933)
Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.7.2 to 4.7.3.
- [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases)
- [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.7.2...v4.7.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-20 14:07:18 +00:00
QMK Bot
c592e10590 Merge remote-tracking branch 'origin/master' into develop 2025-02-18 16:05:34 +00:00
Juno Nguyen
a5c77b5c45 Fix startup sound for Planck (#24893) 2025-02-18 08:04:57 -08:00
Steve Storck
c00b0c5bc9 Created SH1107 driver for quantum painter (#24724)
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2025-02-17 08:41:07 +11:00
Joel Challis
164b7331c3 Migrate some DEFAULT_FOLDER to keyboard_aliases.hjson (#24915) 2025-02-17 08:39:29 +11:00
Nizhegorodtsev Vyacheslav Sergeyevich
132efa9076 Update for 'A-JAZZ AKC084' ('A-JAZZ AKP846') (#24868)
Fix indicators, image, bootloader instructions and default keymap for 'A-JAZZ AKC084'
2025-02-16 16:32:50 +00:00
HorrorTroll
d035f02c08 Patch up issue for inverted complementary output on Backlight (#24794)
Change complementary output to active high, when backlight on state is 1
2025-02-16 15:07:17 +00:00
QMK Bot
47e66c8a24 Merge remote-tracking branch 'origin/master' into develop 2025-02-16 10:24:35 +00:00
Nick Brassel
ad2c0f3565 Add more stale exemption labels. (#24922) 2025-02-16 21:24:01 +11:00
Joel Challis
110cc0923b Reject readme dummy content (#24913) 2025-02-16 10:22:57 +00:00
John
b69bf4b885 Retro Tapping Re-Write; Key Roll Fix (#23641) 2025-02-16 20:50:42 +11:00
DavidSannier
3ab2b3b6e2 Chaining OSL and MO (#23065) 2025-02-16 20:48:40 +11:00
QMK Bot
8ca303168e Merge remote-tracking branch 'origin/master' into develop 2025-02-15 04:56:34 +00:00
wmatex
5e88647879 Fix installation of clang in gentoo install script (#24917)
fix: sys-devel/clang was renamed to llvm-core/clang

see: 1f9f1999cd
2025-02-15 15:56:00 +11:00
Joel Challis
8400fad3d8 Remove readme dummy content (#24912) 2025-02-13 07:03:55 +00:00
Joel Challis
37e234252e Extend lint to reject 'blank' files (#23994) 2025-02-12 17:16:27 +00:00
QMK Bot
14c7164b01 Merge remote-tracking branch 'origin/master' into develop 2025-02-08 12:18:11 +00:00
Joel Challis
2699e2f7c8 Avoid WindowsPath errors for 'qmk format-text' (#24905) 2025-02-08 12:17:35 +00:00
Drashna Jaelre
7fe168a8ed [Keyboard] Move Ergodox STM32 to handwired folder (#24903)
* [Keyboard] Move Erogdox STM32 to handwired folder

To minimize confusion with ZSA's ergodox EZ ST (stm32f303) and because this is basically a one-off board

* Don't forget mapping

* Fix readme
2025-02-07 19:10:45 +11:00
Ryan
273d8d6a1a qmk docs: restore --port and --browser arguments (#24623)
* `qmk docs`: restore `--port` and `--browser` arguments

* Make docs command args always a list
2025-02-01 21:19:30 +11:00
QMK Bot
ff09b921f1 Merge remote-tracking branch 'origin/master' into develop 2025-01-29 19:30:22 +00:00
adophoxia
fa98117a3e Add Keychron C3 Pro (Red & RGB) (#24874)
* Add Keychron C3 Pro variants

* Update to upstream standards

* Apply suggestions from code review

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

* Reformatted `keyboard.json` for `red`/`rgb` and `c3_pro.c`

* Apply suggestions from code review

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

* Update keyboards/keychron/c3_pro/ansi/red/config.h

Co-authored-by: Daniel <1767914+iamdanielv@users.noreply.github.com>

* Apply suggestions from code review

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

* Add C Pro V2 variants

* remove boards by accident

---------

Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Daniel <1767914+iamdanielv@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2025-01-29 12:28:58 -07:00
QMK Bot
ae01f1b63e Merge remote-tracking branch 'origin/master' into develop 2025-01-29 19:28:06 +00:00
Drashna Jaelre
8bf01dd796 [OS Detection] Improve MacOS detection (#24708) 2025-01-30 06:25:21 +11:00
Joel Challis
0c14fc3a21 Resolve keyboard_aliases when processing keyboard make targets (#24834) 2025-01-30 06:22:05 +11:00
QMK Bot
db68fd88bd Merge remote-tracking branch 'origin/master' into develop 2025-01-29 19:21:51 +00:00
Joel Challis
7073ba3dbb Migrate some DEFAULT_FOLDER to keyboard_aliases.hjson (#24845) 2025-01-30 06:21:09 +11:00
dependabot[bot]
ea3a968510 Bump vite from 5.2.14 to 5.4.12 in /builddefs/docsgen (#24852) 2025-01-30 06:20:08 +11:00
Nick Brassel
d7fb12164a Invoke process_record_via after _user/_kb have a chance to handle it. (#24879) 2025-01-30 06:18:07 +11:00
QMK Bot
cfcb8488ed Merge remote-tracking branch 'origin/master' into develop 2025-01-29 19:18:02 +00:00
Pascal Getreuer
9d799aff97 [Bug][Core] Fix for Chordal Hold: stuck mods when mod-taps are pressed in a stuttered sequence. (#24878) 2025-01-30 06:17:54 +11:00
Joel Challis
76b5cef793 Reject keyboard.json next to info.json (#24882) 2025-01-30 06:17:29 +11:00
Joy Lee
08dcc8856f Add more layout for skiller_sgk50_s4 (#24784)
* Add more layout for skiller_sgk50_s4

* Update skiller_sgk50_s4 default keymap

* update keymap.c

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

* Update keymap.c

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

* Update keyboard.json

* Update keyboard.json

* Update keyboard.json

* Update keyboard.json

---------

Co-authored-by: wb <wb@westberrytech.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2025-01-28 20:09:12 -07:00
muge
8afa3f2f08 Add CXT Studio 12E3 keyboard (#24749)
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Joel Challis <git@zvecr.com>
2025-01-28 18:18:41 -08:00
Joel Challis
c7904502e5 handwired/xealous - Remove DEFAULT_FOLDER (#24877) 2025-01-28 05:58:21 +00:00
Pascal Getreuer
544ddde113 [Core] Add Chordal Hold, an "opposite hands rule" tap-hold option similar to Achordion, Bilateral Combinations. (#24560)
* Chordal Hold: restrict what chords settle as hold

* Chordal Hold: docs and further improvements

* Fix formatting.

* Doc rewording and minor edit.

* Support Chordal Hold of multiple tap-hold keys.

* Fix formatting.

* Simplification and additional test.

* Fix formatting.

* Tighten tests.

* Add test two_mod_taps_same_hand_hold_til_timeout.

* Revise handing of pairs of tap-hold keys.

* Generate a default chordal_hold_layout.

* Document chordal_hold_handedness().

* Add license notice to new and branched files in PR.

* Add `tapping.chordal_hold` property for info.json.

* Update docs/reference_info_json.md

* Revise "hand" jsonschema.

* Chordal Hold: Improved layout handedness heuristic.

This commit improves the heuristic used in generate-keyboard-c for
inferring key handedness from keyboard.json geometry data.

Heuristic summary:

1. If the layout is symmetric (e.g. most split keyboards), guess the
   handedness based on the sign of (x - layout_x_midpoint).

2. Otherwise, if the layout has a key of >=6u width, it is probably the
   spacebar. Form a dividing line through the spacebar, nearly vertical
   but with a slight angle to follow typical row stagger.

3. Otherwise, assume handedness based on the widest horizontal
   separation.

I have tested this strategy on a couple dozen keyboards and found it to
work reliably.

* Use Optional instead of `| None`.

* Refactor to avoid lambdas.

* Remove trailing comma in chordal_hold_layout.

* Minor docs edits.

* Revise to allow combining multiple same-hand mods.

This commit revises Chordal Hold as described in discussion in
https://github.com/qmk/qmk_firmware/pull/24560#discussion_r1894655238

1. In "RCTL_T(KC_A)↓, RSFT_T(KC_C)↓, RCTL_T(KC_A)↑" before the tapping
   term, RCTL_T(KC_A) is settled as tapped.
2. In "RCTL_T(KC_A)↓, RSFT_T(KC_C)↓, RSFT_T(KC_C)↑", both RCTL_T(KC_A)
   and RSFT_T(KC_C) are settled as tapped.
3. In "RCTL_T(KC_A)↓, RSFT_T(KC_C)↓, KC_U↓" (all keys on the same side),
   both RCTL_T(KC_A) and RSFT_T(KC_C) are settled as tapped.
4. In "RCTL_T(KC_A)↓, RSFT_T(KC_C)↓, LSFT_T(KC_T)↓", with the third key
   on the other side, we allow Permissive Hold or Hold On Other Keypress
   to decide how/when to settle the keys.
5. In "RCTL_T(KC_A)↓, RSFT_T(KC_C)↓" held until the tapping term, the
   keys are settled as held.

1–3 provide same-hand roll protection. 4–5 are for combining multiple
same-hand modifiers.

I've updated the unit tests and have been running it on my keyboard, for
a few hours so far, and all seems good. I really like this scheme. It
allows combining same-side mods, yet it also has roll protection on
streaks. For me, this feels like Achordion, but clearly better streak
handling and improved responsiveness.

* Fix formatting.

* Add a couple tests with LT keys.

* Remove stale use of CHORDAL_HOLD_LAYOUT.

* Fix misspelling lastest -> latest

* Handling tweak for LTs and tests.

* Fix formatting.

* More tests with LT keys.

* Fix formatting.
2025-01-27 12:32:23 +01:00
Ryan
ee63d39058 Unify spi_master headers (#24857)
* Move default config to .c file

* Explicitly define PAL modes for boards with custom init

* Unify spi_master headers
2025-01-26 22:37:37 +01:00
QMK Bot
0747f887d6 Merge remote-tracking branch 'origin/master' into develop 2025-01-26 16:25:49 +00:00
Mick Hohmann
04c2dbd3df Add keyboard clap_studio/flame60 (#24870)
- Got the source code from the _Clap_Studio_ Discord server
- Migrated the source code to `keyboard.json` format
- Added more layouts for most common cases
- Fixed errors in `keymaps/default/keymap.c`
- Updated the picture with a real picture of the PCB, to avoid confusion
2025-01-26 09:25:15 -07:00
Ryan
ef29a46c87 Unify i2c_master headers (#24846)
* Unify i2c_master headers

* More documentation improvements

* Reorganise PAL mode defaults
2025-01-26 13:48:46 +01:00
Ryan
291d154d7b Unify UART headers (#24855)
* Remove deprecated defines

* Move default config to .c files

* Unify UART headers

* Clean up docs

* Reorganise PAL mode defaults
2025-01-26 13:46:46 +01:00
QMK Bot
e4f736e685 Merge remote-tracking branch 'origin/master' into develop 2025-01-25 17:07:02 +00:00
Thanh Son Tran
5f711f04f1 [Keyboard] Add Support E8ghtyNeo (#24859)
* Update support S6xty5

* Delete chconf.h

* Update manufacturer, community layout for hhkb

* Update layout

* fix row index

* Update tyson60s

* Update community layout and layout name

* Update remove rgb test mode

* Update capslock led

* Apply suggestions from code review

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

* Remove deprecated s6xty5

* handle init e8ghtyneo firmware

* Update qk boot firmware

* Update firmware e8ghtyNeo

* Update matrix

* update manufacture

* Update copyright

---------

Co-authored-by: Trần Thanh Sơn <son.tt1@teko.vn>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2025-01-25 10:06:29 -07:00
QMK Bot
a2353df422 Merge remote-tracking branch 'origin/master' into develop 2025-01-25 15:59:13 +00:00
Xelus22
0a049163f1 [License Violation] add pressplayid (#24869)
add pressplayid lic viol

Co-authored-by: Xelus22 <>
2025-01-25 08:58:38 -07:00
Ryan
a6e931400e Relocate base WS2812 code (#24850) 2025-01-25 17:38:12 +11:00
QMK Bot
2dd2d4eb81 Merge remote-tracking branch 'origin/master' into develop 2025-01-25 03:12:14 +00:00
Drashna Jaelre
6a9ccae18d Fix missing wait.h include in Dip Switch Map (#24863) 2025-01-25 03:11:38 +00:00
QMK Bot
d908501478 Merge remote-tracking branch 'origin/master' into develop 2025-01-24 17:34:15 +00:00
Brian Hill
5650894c20 Add Model-B keyboard (#24681)
* Add Model-B keyboard

* PR changes for Model-B

* Update to OLED on Model-B

* added license to pass lint check

* update virtual eeprom for Model-B

* eeconfig_read_kb() update on Model-B

* cleanup changes for Model B

* implementing Model B suggestions
2025-01-24 10:33:38 -07:00
QMK Bot
acb2f34c5c Merge remote-tracking branch 'origin/master' into develop 2025-01-21 00:01:34 +00:00
Rory Chatterton
163b894b97 Updated Licence Violations for Chosfox L75 (#24833)
Co-authored-by: Joel Challis <git@zvecr.com>
2025-01-21 11:01:02 +11:00
Ryan
68130cc8a5 ferris/0_1: update I2C API usage (#24839) 2025-01-20 22:53:46 +00:00
Ryan
a98070f212 [Docs] Correct I2C API reference (#24840) 2025-01-20 22:53:35 +00:00
Joel Challis
207dc01d49 rgbkb/pan - Remove invalid build target (#24844) 2025-01-20 22:47:42 +00:00
Joel Challis
1a30e2b32b Migrate some DEFAULT_FOLDER to keyboard_aliases.hjson (#24835) 2025-01-20 22:26:25 +00:00
Nick Brassel
7431401116 Fix up CI with DEFAULT_FOLDER. (#24842) 2025-01-20 21:54:41 +00:00
QMK Bot
df8cdde782 Merge remote-tracking branch 'origin/master' into develop 2025-01-20 21:33:27 +00:00
Nick Brassel
a573931fef License violations updates. (#24831) 2025-01-21 08:32:52 +11:00
Nick Brassel
a6a0dc8039 Consolidate send_string implementations. (#24817) 2025-01-21 08:24:39 +11:00
Ryan
47575d4af1 LED drivers: remove deprecated defines (#24837) 2025-01-20 15:30:19 +00:00
Joel Challis
5c33ff8be4 Remove DEFAULT_FOLDER where keyboard aliases already exists (#24838) 2025-01-20 15:24:14 +00:00
Joel Challis
7a0dbe36f3 Formally deprecate DEFAULT_FOLDER (#24836) 2025-01-20 04:55:01 +00:00
Joel Challis
d30cd87556 Update via2json layout macro searching (#24640) 2025-01-20 03:45:47 +00:00
Ryan
58aea4b479 i2c_master: remove deprecated functions (#24832) 2025-01-19 23:24:28 +00:00
Joel Challis
cedd49c59b Consolidate timer_elapsed implementations (#24830) 2025-01-19 17:07:11 +00:00
QMK Bot
a62f9a2ffd Merge remote-tracking branch 'origin/master' into develop 2025-01-18 17:53:08 +00:00
Cipulot
3c40e14013 Add Lily (#24813)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2025-01-18 09:52:33 -08:00
QMK Bot
ca737d4496 Merge remote-tracking branch 'origin/master' into develop 2025-01-18 06:19:51 +00:00
Ryan
d73c64e591 kikoslab/kl90: fix keymap (#24826) 2025-01-18 17:19:18 +11:00
QMK Bot
92e660833f Merge remote-tracking branch 'origin/master' into develop 2025-01-18 04:02:51 +00:00
Patrick Fan
6b368f4ab2 [Keyboard] Add ic45v2 (#24818)
* adding in ic45 handwired

* fix wrong title

* Apply suggestions from code review

Thank you @waffle87

Co-authored-by: jack <jack@pngu.org>

* Update keyboards/handwired/ic45_v2/keyboard.json

adding whitespace

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

---------

Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2025-01-17 21:02:19 -07:00
QMK Bot
1174d16b5a Merge remote-tracking branch 'origin/master' into develop 2025-01-15 19:36:54 +00:00
Haim Gelfenbeyn
7b83bb9d26 Allow running Docker container on MacOS (without in-container USB support) (#24412) 2025-01-16 06:36:20 +11:00
HorrorTroll
7f1c236c75 Bugfix and update for AT32F415 (#24807) 2025-01-13 21:20:36 -08:00
QMK Bot
eb29f8befc Merge remote-tracking branch 'origin/master' into develop 2025-01-13 00:40:15 +00:00
Ryan
26f898c8a5 salane/ncr80alpsskfl: add additional layouts (#24809) 2025-01-13 11:39:40 +11:00
Dasky
62e98327d2 Azoteq - improve I2C behaviour while polling. (#24611)
Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2025-01-10 17:29:58 -08:00
QMK Bot
15bfe6240c Merge remote-tracking branch 'origin/master' into develop 2025-01-10 21:00:08 +00:00
dependabot[bot]
35c6520560 Bump nanoid from 3.3.7 to 3.3.8 in /builddefs/docsgen (#24713)
Bumps [nanoid](https://github.com/ai/nanoid) from 3.3.7 to 3.3.8.
- [Release notes](https://github.com/ai/nanoid/releases)
- [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ai/nanoid/compare/3.3.7...3.3.8)

---
updated-dependencies:
- dependency-name: nanoid
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-10 20:59:33 +00:00
Joel Challis
f9430e530b Ensure qmk flash rejects invalid files for uf2 compatible bootloaders (#24802)
Ensure 'qmk flash' rejects invalid files for uf2 compatible bootloaders
2025-01-10 16:21:07 +00:00
QMK Bot
9332439d5c Merge remote-tracking branch 'origin/master' into develop 2025-01-10 15:04:53 +00:00
Ryan
d90b6e4689 Fix a build warning and tidy up a keymap (#24805) 2025-01-11 02:04:17 +11:00
Nick Brassel
9d2b416fe1 Update ChibiOS-Contrib. (#24803) 2025-01-09 17:53:44 +11:00
QMK Bot
e28799d790 Merge remote-tracking branch 'origin/master' into develop 2025-01-08 16:51:30 +00:00
HorrorTroll
c1565bebce Patch up issue when compile with APA102 driver (#24800) 2025-01-08 08:51:28 -08:00
Drashna Jaelre
80c90a6952 [Bug] Fix Underglow keycode processing (#24798)
Co-authored-by: Ryan <fauxpark@gmail.com>
2025-01-08 08:50:54 -08:00
QMK Bot
8247f9e114 Merge remote-tracking branch 'origin/master' into develop 2025-01-08 03:13:29 +00:00
jack
95c74b6276 [Docs] Fix wording in Mod Tap documentation (#24796) 2025-01-07 19:13:04 -08:00
Joel Challis
6facb7a079 Convert stray legacy warn/info docs panels (#24799) 2025-01-07 19:12:54 -08:00
QMK Bot
1cc42e8c6e Merge remote-tracking branch 'origin/master' into develop 2025-01-06 21:49:38 +00:00
Nick Brassel
bcee1d2f2e Remove preprocessor sanity check for STM32L0/L1 now that it relies on types in C. (#24793) 2025-01-07 08:48:28 +11:00
Ryan
a336c04a6a macOS install: remove bad ARM toolchains (#24637) 2025-01-06 13:19:45 +11:00
Clocks
9339e3c35d Add watchdog service to RGBKB Sol 3 (#24786)
Due to power demands, the Sol 3 might get initially ignored or something by the attached device.

The solution is the enable watchdog, which would have the keyboard repoll the system to connect again.

I have been using watchdog for awhile, but given that the RGBKB developer never progressed #24279,
 I made this to add in the essential feature.
2025-01-05 21:46:58 +01:00
QMK Bot
5eb60827d5 Merge remote-tracking branch 'origin/master' into develop 2025-01-04 11:09:00 +00:00
Tocho Tochev
c9f9475243 Fix durgod k3x0 docs (#24774) 2025-01-04 11:08:26 +00:00
QMK Bot
a25df1ab7a Merge remote-tracking branch 'origin/master' into develop 2025-01-04 08:42:05 +00:00
takashicompany
9dba024d76 Add EE_HANDS for KLEC-02 (#24777)
Add #define EE_HANDS
2025-01-04 09:41:32 +01:00
QMK Bot
28700b0a23 Merge remote-tracking branch 'origin/master' into develop 2025-01-04 00:24:15 +00:00
Leo Lou
4da260a49a [Keyboard] Add 3W6HS (#22539)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2025-01-03 16:23:42 -08:00
QMK Bot
e6a08dbc64 Merge remote-tracking branch 'origin/master' into develop 2025-01-03 20:33:57 +00:00
HorrorTroll
cc3823f767 Update some changes for AT32F415 (#24766)
* Fixed SPI can't compiled issue

* Added solenoid support and use 256KB ldscript for Onekey board
2025-01-03 20:33:22 +00:00
QMK Bot
69f4d2a086 Merge remote-tracking branch 'origin/master' into develop 2025-01-03 06:19:17 +00:00
Sylvain Huguet
9a0f4e586a Add shuguet shu89 (#24758)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: jack <jack@pngu.org>
2025-01-02 22:18:38 -08:00
Juho T.
43800d7934 Add Silakka54 keyboard (#24757)
* Added new keyboard Silakka54

* Update keyboards/silakka54/config.h

Co-authored-by: jack <jack@pngu.org>

* Update keyboards/silakka54/keyboard.json

Co-authored-by: jack <jack@pngu.org>

* Delete keyboards/silakka54/rules.mk

* Update keyboards/silakka54/keyboard.json

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

* Update keyboards/silakka54/config.h

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

* Update readme.md

Fixed small typo, "inpired" to "inspired"

---------

Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2025-01-02 13:07:38 +01:00
QMK Bot
69faa4ff1a Merge remote-tracking branch 'origin/master' into develop 2025-01-02 11:54:10 +00:00
Philip
172c349675 [Keyboard] Add handwired/dactyl_manuform/5x8 (#24726)
* add handwired/dactyl_manuform/5x8 config

* add keymap scheme

* Update keymap.c

* Update keyboard.json

* Update keyboard.json

* fix and compile worked configs

* Update readme.md

* Update readme.md

* Update readme.md

* add dynamic macros support

* change key sets on first workday/add right2left layer

* Update keyboard.json

* Update keymap.c

* move license header to top keymap.c

* Update keyboard.json

* I rewrote the layout so that the halves are not stacked.

* I rewrote the layout so that the halves are not stacked (keymap.c)

* change "serial pin" syntactic

change 
"soft_serial_pin": "D0" 
to         
"serial": {
            "pin": "D0"
        }

* fix KC_BSPC and KC_SPC on right keyboard

* Update readme.md

* Update keymap.c

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

* Update keymap.c

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

---------

Co-authored-by: skandiPC <slinkinfs@yandex.ru>
Co-authored-by: iliorik-ph <140731596+iliorik-ph@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2025-01-02 12:50:43 +01:00
QMK Bot
b01db68476 Merge remote-tracking branch 'origin/master' into develop 2025-01-02 11:45:59 +00:00
Tocho Tochev
ac140e563c Fix link to TMK magic commands (#24773) 2025-01-02 12:45:26 +01:00
フィルターペーパー
c23e64f551 Refactor Hue Breathing matrix effect with runner (#24525) 2025-01-02 02:23:41 -08:00
Will Spooner
b603094995 Add leader_add_user callback (#24266) 2025-01-01 23:12:58 -08:00
フィルターペーパー
e016b9b4c5 Update Raindrops effect to respect LED range limits (#24531) 2025-01-01 23:11:28 -08:00
David Hoelscher
c53d02d511 Ensure timer_read() is safe to call from interrupt handlers on ARM (#24529) 2025-01-01 23:11:10 -08:00
フィルターペーパー
cf975e2bfa Update Starlight matrix effects (#24521) 2025-01-01 23:10:34 -08:00
David Hoelscher
8157b37438 always return audio pin to 0 on ARM (#24503) 2025-01-01 23:10:07 -08:00
QMK Bot
d5a0424987 [CI] Regenerate Files (#24772)
Regenerate Files
2025-01-01 02:22:28 +00:00
QMK Bot
1e6eb5e35c Merge remote-tracking branch 'origin/master' into develop 2025-01-01 02:09:51 +00:00
QMK Bot
57f89e5388 [CI] Regenerate Files (#24770)
Regenerate Files
2025-01-01 13:02:16 +11:00
QMK Bot
4d182ec117 Merge remote-tracking branch 'origin/master' into develop 2025-01-01 01:59:15 +00:00
Joel Challis
53680fa6da Fix g_led_config parse warning (#24769) 2025-01-01 01:58:41 +00:00
QMK Bot
08c1c045f9 Merge remote-tracking branch 'origin/master' into develop 2024-12-31 12:36:59 +00:00
Joel Challis
fe2200f73a Remove invalid "effect_max" animation from keyboards (#24767) 2024-12-31 12:36:24 +00:00
QMK Bot
efcd6187d1 Merge remote-tracking branch 'origin/master' into develop 2024-12-30 21:45:28 +00:00
chillKB
fd0a552fc1 [Keyboard] Ghoul TKL (#24762)
Co-authored-by: jack <jack@pngu.org>
2024-12-30 13:44:51 -08:00
QMK Bot
92534d8e3d Merge remote-tracking branch 'origin/master' into develop 2024-12-27 19:43:49 +00:00
Joel Challis
f549948bbd Skip parsing g_led_config when matrix_size is missing (#24739) 2024-12-28 06:42:54 +11:00
QMK Bot
4d3d8887e7 Merge remote-tracking branch 'origin/master' into develop 2024-12-27 19:25:25 +00:00
Nick Brassel
5593e73ba7 [bug] Djinn theme fix. (#24754)
Theme fix.
2024-12-28 06:24:53 +11:00
muge
93de533580 Move cxt_studio keyboard to own folder (#24748) 2024-12-26 08:58:26 +00:00
QMK Bot
fc4d9c63fb Merge remote-tracking branch 'origin/master' into develop 2024-12-25 02:58:06 +00:00
Drashna Jaelre
58323017ff Add ArteryTek AT32 dfu to udev rules (#24747) 2024-12-25 02:57:30 +00:00
QMK Bot
8037c7332c Merge remote-tracking branch 'origin/master' into develop 2024-12-24 18:26:40 +00:00
Joel Challis
a822545da0 Set custom effect defines for LED Matrix (#24745) 2024-12-24 10:26:08 -08:00
QMK Bot
1741901281 Merge remote-tracking branch 'origin/master' into develop 2024-12-24 18:06:18 +00:00
James Gzowski
40c93bcdc6 [Keyboard] Add Somei70 (#24444)
* Somei70 addition

* Changes made, added VIA keymap, cleaned formatting

* keymap via

* Create rules.mk

* Add files via upload

* Delete keyboards/somei70/keymaps/via directory

* Fixed RGB and matrix

* Layout corrections and LED positions

* removal of rules.mk

* Moved OLED Settings to somei70.c, formatted C removed TABs, removed _LAYERC

* Forgot to include license header

* Further changes as per suggestions, replaced _user for _kb within somei70.c

* Updated keymap 'changes in Nov24'

* Requested changes
2024-12-24 11:05:43 -07:00
j-hap
38eb643a82 Add keymap-extras for EurKEY layout (#24241)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2024-12-23 23:23:51 -08:00
QMK Bot
b78bf7ec43 Merge remote-tracking branch 'origin/master' into develop 2024-12-24 07:23:00 +00:00
chalex
276f84a9a8 add chlx piche (#24252)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: chalex <alejandrelee+magbogbro@gmail.com>
2024-12-23 23:22:22 -08:00
QMK Bot
a09f9bbb41 Merge remote-tracking branch 'origin/master' into develop 2024-12-24 07:14:13 +00:00
dztech
0b5e7052f9 add mellow keyboard (#24319)
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-12-23 23:13:41 -08:00
QMK Bot
c65dd3ba50 Merge remote-tracking branch 'origin/master' into develop 2024-12-24 07:13:28 +00:00
era
18f0d11737 [Keyboard] Add SIRIND Brick65S (#24315)
Co-authored-by: Joel Challis <git@zvecr.com>
2024-12-23 23:12:54 -08:00
QMK Bot
d3585110a3 Merge remote-tracking branch 'origin/master' into develop 2024-12-24 06:27:16 +00:00
Bertrand Le Roy
e6fa351d3b DecenTKL numpad (#24696) 2024-12-23 22:26:44 -08:00
QMK Bot
1ed3878d15 Merge remote-tracking branch 'origin/master' into develop 2024-12-24 06:26:11 +00:00
Bertrand Le Roy
18cca2062e DecenTKL main keyboard (#24702) 2024-12-23 22:25:37 -08:00
Less/Rikki
b4ece24c7d move ymdk/id75 to revision (#24590) 2024-12-22 13:03:03 -08:00
QMK Bot
5c1c4874d7 Merge remote-tracking branch 'origin/master' into develop 2024-12-22 20:23:46 +00:00
J
58807b0288 Clarify keymap location and format in newbs_building_firmware.md (#24663) 2024-12-22 12:23:14 -08:00
Feags
32ea7025fb [Keyboard] Promenade fixes (#24705)
(Missing keys in matrix, other minor changes to keymap)

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2024-12-22 11:58:57 -08:00
QMK Bot
5f0ffd2704 Merge remote-tracking branch 'origin/master' into develop 2024-12-22 19:57:59 +00:00
yiancar
9877af9bf8 [Keyboard] Add keycult 1800 (#24729)
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: yiancar <yiancar@gmail.com>
2024-12-22 11:57:25 -08:00
QMK Bot
24e2466de3 Merge remote-tracking branch 'origin/master' into develop 2024-12-22 05:15:34 +00:00
Less/Rikki
f3fe59afe2 fix: mechwild/bb65 coordinate mix-up (#24738) 2024-12-21 22:14:59 -07:00
QMK Bot
2c6a37021c Merge remote-tracking branch 'origin/master' into develop 2024-12-18 18:17:00 +00:00
Andrew Kannan
c988584fc1 Add Reverie to QMK (#24227)
* Add Reverie to QMK

* Add backlight to reverie

* Update reverie readme and copyright notices

* Use format json to update keyboard.json formatting

* Update to have solderable and hotswap variants split

* Update copyright noticeS

* JSON formatting updates

* inherit config.h

* fix broken keymap

* Update reverie hs keyboard.json to be accurate

* Update keyboards/cannonkeys/reverie/hotswap/keyboard.json

Co-authored-by: jack <jack@pngu.org>

* Remove VIA keymaps

* Update keymap

---------

Co-authored-by: jack <jack@pngu.org>
2024-12-18 11:16:25 -07:00
QMK Bot
10cdcbd057 Merge remote-tracking branch 'origin/master' into develop 2024-12-18 05:02:42 +00:00
Less/Rikki
a7d12e4e8f [Keyboard] wilba_tech/wt45_h1 (#24717) 2024-12-17 21:02:05 -08:00
boessu
d3c9dff9d2 small refactoring of TIMER_DIFF (#24678)
A small refactoring of the defines TIMER_DIFF_8, TIMER_DIFF_16, TIMER_DIFF_32, TIMER_DIFF_RAW.
Removing obsolete TIMER_DIFF helper.
Discussion: https://github.com/qmk/qmk_firmware/issues/24652
2024-12-16 10:27:42 +01:00
Ryan
0f3993b9a3 default_keyboard.h generation tweaks (#24715) 2024-12-15 19:06:05 +00:00
Stefan Kerkmann
8e6bfbfdc2 [Core] chibios: usb_main: remove OTG sof workaround (#24259)
chibios: usb_main: remove OTG sof workaround

With the update of ChibiOS and ChibiOS-Contrib containing fixes for the
OTGv1 LLD the workaround is not necessarry anymore.

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
2024-12-15 18:42:43 +01:00
Nick Brassel
be6ff3af2b Update ChibiOS stable_21.11.x. (#24714) 2024-12-15 23:44:12 +11:00
QMK Bot
cb7608b9e2 Merge remote-tracking branch 'origin/master' into develop 2024-12-15 04:00:50 +00:00
Joel Challis
767dfbbd3f Resolve cli.log.warn warnings (#24551) 2024-12-15 15:00:18 +11:00
QMK Bot
31631537d5 Merge remote-tracking branch 'origin/master' into develop 2024-12-14 23:16:27 +00:00
Xelus22
296e4539f5 [Keyboard] swagkeys integral (#24712)
swagkeys integral

Co-authored-by: Xelus22 <>
2024-12-14 16:15:52 -07:00
QMK Bot
77fb523fa5 Merge remote-tracking branch 'origin/master' into develop 2024-12-14 17:19:42 +00:00
Xelus22
2d33a20956 [Keyboard] add swagkeys eave (#24711)
* add swagkeys eave

* fix up

* Update keyboards/swagkeys/eave/keyboard.json

Co-authored-by: jack <jack@pngu.org>

* Update keyboards/swagkeys/eave/keymaps/default/keymap.c

Co-authored-by: jack <jack@pngu.org>

---------

Co-authored-by: Xelus22 <>
Co-authored-by: jack <jack@pngu.org>
2024-12-14 10:19:11 -07:00
QMK Bot
ad9efdaf0e Merge remote-tracking branch 'origin/master' into develop 2024-12-13 09:43:19 +00:00
Nick Brassel
597bbcb567 Add licensing violations page. (#24697) 2024-12-13 20:42:47 +11:00
フィルターペーパー
e1351b4f4b Subscript alef correction (#24707)
Output for U+0656 is AltGr + V
2024-12-12 11:01:50 -07:00
QMK Bot
76ac62c326 Merge remote-tracking branch 'origin/master' into develop 2024-12-12 17:59:41 +00:00
Guido Bartolucci
d589dbb05b Added VT-40 keyboard (#24706)
* Added VT-40 keyboard

* Remove commented out code. Oops

Co-authored-by: jack <jack@pngu.org>

* Change name of planck_layers to layers.

Co-authored-by: jack <jack@pngu.org>

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

Co-authored-by: jack <jack@pngu.org>

* Removed unused features that I stole from the contra config

* Removed unused features that I stole from the contra config

* fixed lower/raise keys

* make adjust layer accessible

* Added adjust key for real this time

* Update keyboards/vt40/keyboard.json

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

---------

Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2024-12-12 10:59:07 -07:00
QMK Bot
56f4ba366e Merge remote-tracking branch 'origin/master' into develop 2024-12-11 20:30:14 +00:00
Lostdotfish
d283e27bf8 [Keymap] Update rp2040_orbweaver (#24704)
* Update keymap.c

enhancement - power down indicator LEDs when host sleeps

* Update keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c

Co-authored-by: jack <jack@pngu.org>

* Update keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c

Co-authored-by: jack <jack@pngu.org>

---------

Co-authored-by: jack <jack@pngu.org>
2024-12-11 13:29:36 -07:00
jack
0228806ae8 Change new-keymap keymap name prompt (#24701) 2024-12-11 12:28:30 -08:00
QMK Bot
1b5ae7aa71 Merge remote-tracking branch 'origin/master' into develop 2024-12-09 06:34:19 +00:00
Cipulot
847257c3c7 Addition of EC TKL X (#24647) 2024-12-08 23:34:07 -07:00
Cipulot
388c3c6d12 Addition of EC65X (#24648) 2024-12-08 23:33:40 -07:00
QMK Bot
c7c91700b8 Merge remote-tracking branch 'origin/master' into develop 2024-12-09 06:32:41 +00:00
Lostdotfish
39958fe854 [Keyboard] Add Orbweaver (#24692)
* Create README.md

* Add files via upload

* Create keymap.c

* Update README.md

* Update keyboards/lostdotfish/rp2040_orbweaver/README.md

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

* Update keyboards/lostdotfish/rp2040_orbweaver/keyboard.json

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

* Rename README.md to readme.md

* Update readme.md

* Update keyboards/lostdotfish/rp2040_orbweaver/keyboard.json

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

* Update keyboards/lostdotfish/rp2040_orbweaver/mcuconf.h

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

* Update keyboard.json

* Update keyboards/lostdotfish/rp2040_orbweaver/config.h

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

* Update keyboard.json

* Update mcuconf.h

* Update rp2040_orbweaver.c

* Delete keyboards/lostdotfish/rp2040_orbweaver/halconf.h

* Update config.h

* Update readme.md

* Update readme.md

* Update readme.md

* Update keyboards/lostdotfish/rp2040_orbweaver/keyboard.json

---------

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: jack <jack@pngu.org>
2024-12-08 23:31:49 -07:00
QMK Bot
af53c13d53 Merge remote-tracking branch 'origin/master' into develop 2024-12-09 06:22:24 +00:00
nuess0r
3c35952944 Adding ctrl-M replacement controller for IBM Model M (#24375)
* This is a configuration of QMK intended to be used with the [ctrl-M controller](https://github.com/nuess0r/ctrl-M).

* Move USB_MAX_POWER_CONSUMPTION to data driven due to upstream change

* Clean up according to PR checklist

Check the keymaps/nuess0r how you can make better use of your Model M
including Windows, multimedia keys etc.

* Move CAPS_HOLD feature from default build to custom keymap

* More data driven configuration

Move layout definition from ctrl_m.h to info.json
Move has_ghost to info.json -> this makes the config.h file obsolete

* Implement changes suggested by review

* Removing user keymap (nuess0r) to follow current guidelines

The nuess0r keymap which is shipped with the ctrl-M controller is kept here:
https://github.com/nuess0r/qmk_firmware/tree/nuess0r_keymap

* Changed image hosting location to Github

requested in review by drashna

* Changed image hosting location to imgur

* Settings removed from info.json that are disabled by default.

* Change URL as suggested by @dunk2k

Not pointing to the QMK firmware but to the replacement controller electronics
project.

* Migrate build target markers to keyboard.json

* Adding tindie link and implement review suggestions

* Removing via keymap to follow current guidelines

Will be moved to the https://github.com/the-via/qmk_userspace_via repo.

* Add LAYOUT_all to support ANSI and ISO keyboards with the same firmware

Add a LAYOUT_all similar to other keyboards that defines all available keys.
Change the default keymap to use the _all layout so both ANSI and ISO Model M
variants work out of the box.

* Remove unnecessary enum from default keymap

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

---------

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
2024-12-08 23:21:49 -07:00
QMK Bot
86f8694580 Merge remote-tracking branch 'origin/master' into develop 2024-12-09 05:44:45 +00:00
Amund Tenstad
379bb77005 fix: KC_MEDIA_PLAY_PAUSE label (#24693) 2024-12-08 22:44:12 -07:00
QMK Bot
a683f10bff Merge remote-tracking branch 'origin/master' into develop 2024-12-09 03:30:58 +00:00
Feags
1c6d3d0cbc Adding new keyboard Promenade RP24S (#24689)
* adding keymaps for krado industries

* Modified default keymap.c files to be the same as via.

* Changing vendor ID for Krado Industries

* Suggested changes made

Making changes suggested by zvecr.
Removed dynamic_layer indicator, updated copyright year, deleted unused layers in keymaps.

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

* rgbpin for ws2812 changed in info.json

* Added encoder mapping rule file for default keymaps; added Fn layer shortcuts to Promenade layouts

* Added rules.mk with encoder mapping for encoder boards at keymaps level.

* Deleted extra key in LAYOUT

* Update keyboards/kradoindustries/kousa/rules.mk

Move WS2812 Driver from rules.mk to info.json

Co-authored-by: jack <jack@pngu.org>

* Update keyboards/kradoindustries/kousa/info.json

Move WS2812 Driver from rules.mk to info.json

Co-authored-by: jack <jack@pngu.org>

* Update keyboards/kradoindustries/kousa/keymaps/default/keymap.c

Move WS2812 Driver from rules.mk to info.json

Co-authored-by: jack <jack@pngu.org>

* Reverting settings.json

* Encoder map code change [2]>[NUM_DIRECTIONS]

* Adding Promenade RP24S

Adding Promenade RP24S keyboard.json, default keymap, and readme

* Adding layer access to Promenade RP24S

Adding layer access to layers 1 and 2

---------

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: jack <jack@pngu.org>
2024-12-08 20:30:26 -07:00
Joel Challis
68f67e23aa skyloong/gk61: Remove overriding of core keycode behaviour (#24655) 2024-12-08 06:35:12 -08:00
QMK Bot
001e190935 Merge remote-tracking branch 'origin/master' into develop 2024-12-08 06:06:35 +00:00
era
782f91a73a [Keyboard] Add SIRIND Tomak79S (#24684)
* Add Tomak79S

Add Tomak79S

* Update keyboards/era/sirind/tomak79s/keymaps/default/keymap.c

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

---------

Co-authored-by: jack <jack@pngu.org>
2024-12-07 23:06:03 -07:00
QMK Bot
e3000fabb7 Merge remote-tracking branch 'origin/master' into develop 2024-12-06 22:06:14 +00:00
Ryan
a12ff287ee Organise default community layouts summary (#24500)
* Organise default community layouts summary

* Remove erroneous layout
2024-12-07 09:05:40 +11:00
QMK Bot
98291bc281 Merge remote-tracking branch 'origin/master' into develop 2024-12-06 05:44:06 +00:00
Patrickemm
03937e0c86 Add Macroflow Original macropad firmware (#24538)
* Adding Macroflow Macropad

* Macroflow_Macropad

* Macroflow_Macropad

* Adding My Macropad

* Adding Macroflow Macropad

* Adding Macroflow Macropad

* Adding Macroflow Macropad

* Adding Macroflow Macropad

* Adding Macroflow Macropad

* Added License Headers

* Updated code for merge

* Added License Header

* Added Encoder Map

* Updated Files

* Fixed Matrix

* Update keyboards/macroflow_original/keyboard.json

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

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

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

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

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

* Update keyboards/macroflow_original/keymaps/default/rules.mk

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

* Update keyboards/macroflow_original/macroflow_original.c

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

---------

Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-12-05 22:43:35 -07:00
QMK Bot
55ea94832c Merge remote-tracking branch 'origin/master' into develop 2024-12-05 18:59:00 +00:00
suikagiken
09fdabf37c Fix keymap.json error of keyboard/suikagiken/suika27melo (#24677) 2024-12-06 05:58:28 +11:00
QMK Bot
f4dc0c33cc Merge remote-tracking branch 'origin/master' into develop 2024-12-05 18:18:59 +00:00
Andrew Kannan
d76f7bfac3 Add Cerberus to QMK (#24226)
* Add Cerberus to QMK

* Update readme to add hotswap callouts

* Update readme formatting

* Use format json to update keyboard.json formatting

* Split Cerberus HS and Solderable into separate folders

* Update JSON formatting

* make solderable keymaps a bit more useful

* Backlight fix on solderable

* Update keyboards/cannonkeys/cerberus/hotswap/keyboard.json

Co-authored-by: jack <jack@pngu.org>

* Remove cerberus VIA keymaps

* Apply suggestions from code review

Change some whitespace

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

* Add RGB control keycodes to cerberus keymap

* Add backlight controls to default keymap on solderable version

* Update keyboards/cannonkeys/cerberus/readme.md

---------

Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-12-05 11:18:25 -07:00
QMK Bot
daf4746da7 Merge remote-tracking branch 'origin/master' into develop 2024-12-04 17:19:20 +00:00
Vino Rodrigues
3c324cb5e6 [Keyboard] Add Binepad BNK8 keyboard (#24598)
* Add Binepad BNK8 keyboard

* Moved keymap.c to keymap.json

* Fix product page URL

* RGB_ -> RM_ keycodes after this round of breaking changes

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

---------

Co-authored-by: Ryan <fauxpark@gmail.com>
2024-12-04 10:10:11 -07:00
QMK Bot
e64adcef7e Merge remote-tracking branch 'origin/master' into develop 2024-12-04 17:08:07 +00:00
kbd0
d01303c060 [Keyboard] add kbd0 Curve0 60 ANSI (#24609)
* add kbd0/curve0/60_ansi keyboard

* Apply suggestions from code review

Co-authored-by: jack <jack@pngu.org>

* Apply suggestions from code review

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

---------

Co-authored-by: unknown <code-monke>
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2024-12-04 10:07:26 -07:00
QMK Bot
6992401770 Merge remote-tracking branch 'origin/master' into develop 2024-12-04 16:58:38 +00:00
Cipulot
5dc92edf11 Addition of EC1-AT (#24645) 2024-12-04 09:57:16 -07:00
QMK Bot
3d3f14044a Merge remote-tracking branch 'origin/master' into develop 2024-12-04 16:55:49 +00:00
Cipulot
8094a1d182 Addition of EC Constellation (#24644)
* Addition of EC Constellation

* Fix layout macro name
2024-12-04 09:55:08 -07:00
QMK Bot
094933f002 Merge remote-tracking branch 'origin/master' into develop 2024-12-04 16:52:23 +00:00
Marco Pelegrini
88d4462e52 [Keyboard] Add Marcopad (#24636)
* Marcopad debut

* Applying core review suggestions

* Optional layout with backlit

* Line feeds and replacing dev board configs

* Function to toggle backlight

* Move to RGB Matrix

* Fixing capitalization

* Review comments

---------

Co-authored-by: Marco Pelegrini <mpelegrini@microsoft.com>
2024-12-04 09:51:40 -07:00
QMK Bot
25da6bc359 Merge remote-tracking branch 'origin/master' into develop 2024-12-04 16:37:37 +00:00
Can Baytok
c2bc6e2b3c [Keyboard] Add cans12erv2 (#24628)
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Can Baytok <baytok@dydocon.com>
2024-12-04 08:37:02 -08:00
QMK Bot
b6192ef8a0 Merge remote-tracking branch 'origin/master' into develop 2024-12-03 23:10:02 +00:00
GustawXYZ
a794ceeb51 [Keyboard] Add dactyl_manuform_pi_pico (#23891)
Adds new keyboard under handwired/dactyl_manuform_pi_pico

It is a dactyl_manuform(5x6) running on Pi Pico micro controller
2024-12-03 16:09:24 -07:00
QMK Bot
176aa00abb Merge remote-tracking branch 'origin/master' into develop 2024-12-03 22:48:59 +00:00
Stephen Edwards
85222dfd8c Add a keyboard entry for yacobo model m replacement control boards (#23827)
* add the keyboard

* Update keyboards/ibm/model_m/yacobo/keyboard.json

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

* remove dead file

* PR Comments

* standardize comments

* PR Comments

---------

Co-authored-by: Stephen Edwards <stephenedwardsemail@gmail.com>
Co-authored-by: jack <jack@pngu.org>
2024-12-03 15:43:14 -07:00
QMK Bot
fefb4180aa Merge remote-tracking branch 'origin/master' into develop 2024-12-03 22:40:41 +00:00
Vaarai
e7f1388317 Add cornia keyboard (#24442)
* Add cornia keyboard

* Update Fire keymap

* [Cornia/Doc] Host image on imgur

* [Cornia/config] Remove unnecessary defines

* [Cornia] Move I2C stuff to keyboard level

* [Cornia/config] Remove unnecessary defines & move all callbacks to keymap.c

* [Cornia] Use tri-layer in default keymap

* [Cornia/makefiles] remove license headers & root makefile

* [Cornia] Put common configuration to top keyboard level

* [Cornia] Remove unecessary custom keycodes

* [Cornia] Fix readme

* [Cornia] Fix RGB keycodes

* [Cornia] Fix config files

* [Cornia] Fix readme

* [Cornia] Fix mcuconf.h license
2024-12-03 15:40:07 -07:00
QMK Bot
0196298b10 Merge remote-tracking branch 'origin/master' into develop 2024-12-03 19:31:52 +00:00
dependabot[bot]
f0eb2460d9 Bump JamesIves/github-pages-deploy-action from 4.7.1 to 4.7.2 (#24672)
Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.7.1 to 4.7.2.
- [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases)
- [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.7.1...v4.7.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-03 19:31:16 +00:00
QMK Bot
d44fe48a55 Merge remote-tracking branch 'origin/master' into develop 2024-12-03 18:36:17 +00:00
russell-myers1
93765bb0ef Update hardware_keyboard_guidelines.md to Fix Typos (#24671)
Corrected a typo in the phrase "iOS device need lessthan 100" to "iOS devices need less than 100."
This was to improve clarity and professionalism of the doc.
2024-12-03 11:35:39 -07:00
QMK Bot
6f2c032459 Merge remote-tracking branch 'origin/master' into develop 2024-12-03 07:47:37 +00:00
gtips
c5eeac9686 [Keyboard] Add keyboard reviung46 (#24245)
* add keyboard reviung46

* modified keyboards/reviung/reviung46/readme.md

* modified keyboards/reviung/reviung46/keyboard.json

* modified keyboards/reviung/reviung46/readme.md

* fix keyboards/reviung/reviung46/keyboard.json

* fix keyboards/reviung/reviung46/keymaps/default/keymap.c
fix keyboards/reviung/reviung46/keymaps/via/keymap.c

* fix keyboards/reviung/reviung46/keymaps/via/keymap.c

* fix keyboards/reviung/reviung46/keyboard.json

* fix keyboards/reviung/reviung46/keyboard.json

* modified reviung/reviung46/readme.md

* fixed  keyboards/reviung/reviung46/keyboard.json

* fixed keyboards/reviung/reviung46/keymaps/default/keymap.c
deleted keyboards/reviung/reviung46/keymaps/via/keymap.c
deleted keyboards/reviung/reviung46/keymaps/via/rules.mk

* fix keyboards/reviung/reviung46/keyboard.json and keyboards/reviung/reviung46/keymaps/default/keymap.c

* Update keyboards/reviung/reviung46/readme.md

---------

Co-authored-by: jack <jack@pngu.org>
2024-12-03 00:46:37 -07:00
QMK Bot
2d5d3ac959 Merge remote-tracking branch 'origin/master' into develop 2024-12-03 07:35:59 +00:00
Sắn
191172aa4e [Keyboard] Add NCR80 ALPS SKFL/FR (#24625)
* ADD NCR80 ALPS SKFL/FR

* fix

* Update config.h

* Update config.h

* Update keyboards/salane/ncr80alpsskfl/keyboard.json

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

* Update keyboards/salane/ncr80alpsskfl/keymaps/default/keymap.c

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

* Update keyboards/salane/ncr80alpsskfl/keymaps/default/keymap.c

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

* Update keyboards/salane/ncr80alpsskfl/keyboard.json

Co-authored-by: jack <jack@pngu.org>

* Update keyboards/salane/ncr80alpsskfl/readme.md

Co-authored-by: jack <jack@pngu.org>

---------

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: jack <jack@pngu.org>
2024-12-03 00:35:24 -07:00
QMK Bot
7858f84366 Merge remote-tracking branch 'origin/master' into develop 2024-12-02 21:26:44 +00:00
VeyPatch
c8fe565ee6 [Keyboard] Add splitkb.com's Halcyon Kyria rev4 (#24512)
* Add Halcyon Kyria Rev4

* Remove bootmagic and unused features

* Fix encoderindex

* Update readme.md

* Remove rgblight

* Implement requested changes

* Add encoder update user

* Remove rules.mk and add VIK configuration

* Move options to config.h

* Update RGB keycodes (qmk#24484)

* implement changes

---------

Co-authored-by: harvey-splitkb <126267034+harvey-splitkb@users.noreply.github.com>
2024-12-02 14:26:10 -07:00
QMK Bot
384e42cb23 Merge remote-tracking branch 'origin/master' into develop 2024-12-02 17:10:39 +00:00
takashicompany
50966934b2 Add new keyboard "Jourkey" (#24409)
* jourkey

* rotary encoder

* fix keymap

* jourkey

* format json

* Update keyboards/takashicompany/jourkey/readme.md

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

* fix layout

* Update readme.md

---------

Co-authored-by: Joel Challis <git@zvecr.com>
2024-12-02 10:10:01 -07:00
QMK Bot
22849a59d4 Merge remote-tracking branch 'origin/master' into develop 2024-12-02 16:49:47 +00:00
Josh Hinnebusch
09dfbf8efe [Keyboard] Add h88 gen2 (#24454)
* initial commit

* small updates

* matrix fix

* fix rgb lighting

* updates

* fix rgb pin

* pin fixes

* readme update

* json formatting

* Update keyboards/hineybush/h88_g2/config.h

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

---------

Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-12-02 09:49:11 -07:00
QMK Bot
750a3f1e60 Merge remote-tracking branch 'origin/master' into develop 2024-12-02 16:49:00 +00:00
Thomas Queste
e4e66c61ad [murcielago] Enable split watchdog (#24463) 2024-12-02 09:48:26 -07:00
QMK Bot
777ae4fb8d Merge remote-tracking branch 'origin/master' into develop 2024-12-02 15:37:41 +00:00
Thanh Son Tran
28320f0cb5 [Keyboard] Add support S6xty5Neo Rev.2 (#24631)
* Update support S6xty5

* Delete chconf.h

* Update manufacturer, community layout for hhkb

* Update layout

* fix row index

* Update tyson60s

* Update community layout and layout name

* Update remove rgb test mode

* Update capslock led

* Apply suggestions from code review

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

* Add support for S6xty5Neo Rev.2

* Remove deprecated s6xty5

* Update layout

* Apply suggestions from code review

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

* Move mcuconf and config to outer folder

---------

Co-authored-by: Trần Thanh Sơn <son.tt1@teko.vn>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2024-12-02 08:37:02 -07:00
QMK Bot
97870b27a1 Merge remote-tracking branch 'origin/master' into develop 2024-12-02 15:33:45 +00:00
suikagiken
cd286e4b9d [Keyboard] Add suika27melo (#24616)
* add keyboard suika27melo

* Update keyboards/suikagiken/suika27melo/keyboard.json

Co-authored-by: jack <jack@pngu.org>

* Update keyboards/suikagiken/suika27melo/keyboard.json

Co-authored-by: jack <jack@pngu.org>

* Update keyboards/suikagiken/suika27melo/readme.md

Co-authored-by: jack <jack@pngu.org>

* Update keyboards/suikagiken/suika27melo/readme.md

Co-authored-by: jack <jack@pngu.org>

* change to imgur link

---------

Co-authored-by: jack <jack@pngu.org>
2024-12-02 08:30:02 -07:00
QMK Bot
0c176f6123 Merge remote-tracking branch 'origin/master' into develop 2024-12-02 15:24:25 +00:00
Thanh Son Tran
0ad3ffdfbc [Keyboard] Add support E8ghty (#24632)
* Update support S6xty5

* Delete chconf.h

* Update manufacturer, community layout for hhkb

* Update layout

* fix row index

* Update tyson60s

* Update community layout and layout name

* Update remove rgb test mode

* Update capslock led

* Apply suggestions from code review

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

* Remove deprecated s6xty5

* Update support for E8ghty

* remove rgb test mode

* Update community layout

* Update fix pipeline build ci

* Apply suggestions from code review

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

---------

Co-authored-by: Trần Thanh Sơn <son.tt1@teko.vn>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2024-12-02 08:20:48 -07:00
QMK Bot
b3a1dc0658 Merge remote-tracking branch 'origin/master' into develop 2024-12-02 15:07:28 +00:00
Sắn
fa3be8a3fb sawnsprojects/bunnygirl65: Fix typo in name (#24668) 2024-12-02 15:02:29 +00:00
Nibell
e592a7da00 [Keyboard] Added nibell micropad4x4 (#24662)
* feat: added nibell micropad4x4

* chore: updated readme

* chore: updated keymap

* feat: added layers

* chore: added bootloader doc

* Added layers

* changed RSHIFT and RCTRL

* Update keyboards/nibell/micropad4x4/keyboard.json

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

* Update keyboards/nibell/micropad4x4/readme.md

---------

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: jack <jack@pngu.org>
2024-12-02 08:00:29 -07:00
QMK Bot
2bfc0e07d1 Merge remote-tracking branch 'origin/master' into develop 2024-12-02 14:58:10 +00:00
Stephen Onnen
be7786bfc6 Addition of Hotdog Pad (#24650)
* Add Hotdog Pad

* remove encoder_map feature

* Add rules.mk

* move rules.mk into keymap

* Update keyboards/onnenon/hotdog_pad/keyboard.json

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

* Update keyboards/onnenon/hotdog_pad/keyboard.json

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

* Update keyboards/onnenon/hotdog_pad/keymaps/default/keymap.c

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

* Update keyboards/onnenon/hotdog_pad/keymaps/default/keymap.c

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

* add hotdog_pad.c

* fix reversed encoder pins

* Update keyboards/onnenon/hotdog_pad/hotdog_pad.c

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

---------

Co-authored-by: Joel Challis <git@zvecr.com>
2024-12-02 07:57:34 -07:00
Drashna Jaelre
b599c78548 Fix Quantum Painter compiliation issues with heavy optimization (#24667) 2024-12-02 16:58:18 +11:00
QMK Bot
fa96609e0b Merge remote-tracking branch 'origin/master' into develop 2024-12-02 04:12:12 +00:00
Christian C. Berclaz
39c40f55cb Add Xlant XL keyboard (#24608)
Co-authored-by: jack <jack@pngu.org>
2024-12-01 20:05:29 -08:00
QMK Bot
1d5de078c7 Merge remote-tracking branch 'origin/master' into develop 2024-12-02 04:01:40 +00:00
Less/Rikki
b022d3bc6b [Keyboard] Add fistbnmp (#24595) 2024-12-01 20:01:05 -08:00
QMK Bot
aa9e48dae2 Merge remote-tracking branch 'origin/master' into develop 2024-12-01 19:25:16 +00:00
Joel Challis
5eb53be671 Avoid loading keymap rules.mk twice (#24665) 2024-12-02 06:24:44 +11:00
Nick Brassel
df9bf9efa1 Update ChibiOS to latest stable branch. (#24651) 2024-11-30 22:51:41 +11:00
QMK Bot
5b827356bb Merge remote-tracking branch 'origin/master' into develop 2024-11-30 05:31:16 +00:00
Ryan
1da8aa8259 Improve "feature/encoder config both specified" warnings (#24641) 2024-11-30 05:30:45 +00:00
QMK Bot
0ae7639f6c Merge remote-tracking branch 'origin/master' into develop 2024-11-30 05:30:38 +00:00
Ryan
97547ac762 Update leftover RGB keycodes (#24653) 2024-11-30 05:30:05 +00:00
Joel Challis
50491c44ca moky/moky88: Remove use of deprecated defines (#24656) 2024-11-29 13:51:16 -08:00
QMK Bot
653d1a5e37 Merge remote-tracking branch 'origin/master' into develop 2024-11-28 19:46:32 +00:00
dependabot[bot]
66d0d53dc1 Bump JamesIves/github-pages-deploy-action from 4.6.9 to 4.7.1 (#24654)
Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.9 to 4.7.1.
- [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases)
- [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.9...v4.7.1)

---
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>
2024-11-28 19:45:59 +00:00
Nick Brassel
b0ac5bcf91 Branch point for 2025q1 breaking change 2024-11-27 21:31:31 +11:00
Nick Brassel
f8ba76a771 Merge branch 'master' into develop 2024-11-27 21:30:59 +11:00
Nick Brassel
9f76541b29 Merge branch 'develop' 2024-11-27 21:29:12 +11:00
Nick Brassel
eb04b94eec Merge point for 2024q4 breaking change. 2024-11-27 21:26:34 +11:00
Nick Brassel
b7b0eb76a9 develop 2024q4 changelog. (#24638) 2024-11-27 21:19:17 +11:00
Joel Challis
36f306b4a5 Provide method to save a single default layer in the full range of 0-31 (#24639) 2024-11-25 07:35:21 +11:00
Ryan
f3bae56808 Update keycodes for keyboards with RGB Matrix (#24484) 2024-11-24 12:03:08 +00:00
Nick Brassel
7d8f193988 Allow codegen of keymap.json => keymap.c without requiring layers/layout etc. (#23451) 2024-11-24 20:32:30 +11:00
Joel Challis
859dab864a Remove keyboard use of eeconfig_read_default_layer (#24635) 2024-11-23 17:43:45 +00:00
Dasky
1f7d10902a Add pointing tests (#24513) 2024-11-23 16:34:32 +00:00
Ryan
d189de24a0 Simple Python script to show polling rate (#24622) 2024-11-23 14:07:18 +00:00
Joel Challis
e4e015c0c8 Update keymaps to use PDF keycode (#24633) 2024-11-23 13:35:34 +00:00
Joel Challis
4a5bae51cd [Feature] Add keycode PDF(layer) to set the default layer in EEPROM (#24630)
* [Feature] Add keycode PDF(layer) to set the default layer in EEPROM (#21881)

* Apply suggestions from code review

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

---------

Co-authored-by: Nebuleon <2391500+Nebuleon@users.noreply.github.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2024-11-23 10:09:34 +00:00
QMK Bot
9e9b4acbde Merge remote-tracking branch 'origin/master' into develop 2024-11-21 18:47:10 +00:00
Joel Challis
57be487161 Fix rendering of reference_configurator_support.md (#24629) 2024-11-21 18:46:36 +00:00
Joel Challis
968a611476 Review fixes for layer lock feature (#24627) 2024-11-21 13:02:49 +00:00
Ryan
65a8a5ff69 qmk find: expand operator support (#24468) 2024-11-21 22:57:36 +11:00
Drashna Jaelre
c7a04bd930 Bring supported STM32F4 configs in line with F4x1 (#24413)
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2024-11-21 22:54:01 +11:00
Drashna Jaelre
36b5559b99 [Core] Add Layer Lock feature (#23430)
Co-authored-by: Daniel <1767914+iamdanielv@users.noreply.github.com>
Co-authored-by: Pascal Getreuer <getreuer@google.com>
Co-authored-by: Pascal Getreuer <50221757+getreuer@users.noreply.github.com>
2024-11-21 17:31:54 +11:00
HorrorTroll
39161b9ee7 Added MCU support for ArteryTek AT32F415 (#23445) 2024-11-21 17:28:28 +11:00
QMK Bot
074bbbfb21 Merge remote-tracking branch 'origin/master' into develop 2024-11-21 06:22:51 +00:00
Ryan
638b22d057 qmk new-keyboard: separate dev board and MCU selection (#24548) 2024-11-21 17:22:14 +11:00
Ryan
9bea332a21 qmk via2json: Improve macro parsing (#24345) 2024-11-21 17:20:05 +11:00
Ryan
8cbcdcac62 qmk new-keymap: validate keymap name (#23420) 2024-11-21 17:18:51 +11:00
Pablo Martínez
88afd53b1f [CLI] Refactor painter arguments to table instead of commandline (#24456)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2024-11-21 17:16:46 +11:00
Ryan
9c86583981 Backward compatibility for new RGB keycode handling (#24490)
Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
2024-11-20 09:53:33 +11:00
QMK Bot
e66fce38b2 Merge remote-tracking branch 'origin/master' into develop 2024-11-19 21:59:43 +00:00
Nick Brassel
c843ad1268 Add Sagittarius encoder support. (#24617) 2024-11-20 08:59:07 +11:00
QMK Bot
0853a8ea35 Merge remote-tracking branch 'origin/master' into develop 2024-11-19 20:38:13 +00:00
russell-myers1
0988523851 Fix typo in docs/api_development_overview.md (#24620) 2024-11-19 13:37:39 -07:00
QMK Bot
7936a791ed Merge remote-tracking branch 'origin/master' into develop 2024-11-17 15:06:31 +00:00
Amund Tenstad
3a6df60ba5 docs: fix RWIN alias (#24610) 2024-11-17 15:05:57 +00:00
QMK Bot
5ab408aef7 Merge remote-tracking branch 'origin/master' into develop 2024-11-17 07:16:16 +00:00
Naoki Katahira
da34d652d4 [Keyboard]Add Lily58 Lite Rev3(lily58/lite_rev3) (#24255)
* add Lily58 Lite Rev3 Firmware

* fix README

* Update README

* delete lite_rev3.h

* Update keyboards/lily58/lite_rev3/halconf.h

Co-authored-by: jack <jack@pngu.org>

* Update keyboards/lily58/lite_rev3/config.h

Co-authored-by: jack <jack@pngu.org>

* Update keyboards/lily58/lite_rev3/keyboard.json

Co-authored-by: jack <jack@pngu.org>

* Update keyboards/lily58/lite_rev3/keyboard.json

Co-authored-by: jack <jack@pngu.org>

* Update keyboards/lily58/lite_rev3/mcuconf.h

Co-authored-by: jack <jack@pngu.org>

* fix image url

* fix SERIAL_DRIVER definition

* fix VIA_ENABLE definition disable

* fix cols pin

* Update keyboards/lily58/lite_rev3/config.h

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

* Update keyboards/lily58/lite_rev3/keyboard.json

Co-authored-by: jack <jack@pngu.org>

* delete rules.mk

* Update README

* Update keyboards/lily58/lite_rev3/readme.md

---------

Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-11-17 00:15:45 -07:00
QMK Bot
310c4847d5 Merge remote-tracking branch 'origin/master' into develop 2024-11-15 18:16:23 +00:00
Amund Tenstad
f4e58eeff4 docs: move description of host_language from Macros to Language-specific Keycodes (#24584)
Co-authored-by: フィルターペーパー <76888457+filterpaper@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-11-15 11:15:48 -07:00
QMK Bot
79a661fe61 Merge remote-tracking branch 'origin/master' into develop 2024-11-14 18:00:36 +00:00
Ryan
46236ce3de [docs] Improve halconf/mcuconf code examples (#24597) 2024-11-14 18:00:02 +00:00
Nick Brassel
0bda0f4775 Revert removal of QK_OUTPUT_AUTO, fixup docs to reflect. (#24593) 2024-11-14 21:16:52 +11:00
QMK Bot
f8b4e24d37 Merge remote-tracking branch 'origin/master' into develop 2024-11-14 09:43:56 +00:00
Nick Brassel
a8a47c4011 Perform test compiles during qmk doctor. (#24282)
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2024-11-14 20:43:23 +11:00
QMK Bot
d04789e9ea Merge remote-tracking branch 'origin/master' into develop 2024-11-13 04:29:48 +00:00
Druah
4757ef281f [Keyboard] Add Majestouch Redux (#24586)
* [Keyboard] Add Majestouch Redux

* Apply suggestions from code review

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

---------

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2024-11-12 21:29:12 -07:00
QMK Bot
4e77ab66e2 Merge remote-tracking branch 'origin/master' into develop 2024-11-12 02:21:49 +00:00
Ryan
3d4da6de29 [docs] Add "edit this page" link at the bottom (#24585) 2024-11-12 02:20:56 +00:00
QMK Bot
be7b479c4a Merge remote-tracking branch 'origin/master' into develop 2024-11-12 02:20:13 +00:00
dependabot[bot]
9cd7896760 Bump JamesIves/github-pages-deploy-action from 4.6.8 to 4.6.9 (#24592)
Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.8 to 4.6.9.
- [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases)
- [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.8...v4.6.9)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-12 02:18:51 +00:00
QMK Bot
291f1992d3 Merge remote-tracking branch 'origin/master' into develop 2024-11-10 19:12:22 +00:00
Duncan Sutherland
8cbd631fcb remove "w": 1 from /keyboards/ (#24587) 2024-11-10 12:11:48 -07:00
Ryan
a3cfb1dab7 Joystick: add support for 8-way hat switch (#24515) 2024-11-09 14:10:10 -08:00
QMK Bot
69093f6de9 Merge remote-tracking branch 'origin/master' into develop 2024-11-09 19:04:48 +00:00
Ryan
3eb172d08e [docs] Turn on icons for external links (#24580) 2024-11-09 12:04:14 -07:00
QMK Bot
a8fc265bf1 Merge remote-tracking branch 'origin/master' into develop 2024-11-09 16:49:43 +00:00
Ryan
b3f5408e72 [docs] Fix dead link to keyboard list in newbs.md (#24579) 2024-11-09 09:49:11 -07:00
QMK Bot
b06e9fdd95 Merge remote-tracking branch 'origin/master' into develop 2024-11-09 04:24:07 +00:00
Amund Tenstad
f156e57f8e [Keyboard] Add tenstad (#24571)
* [Keyboard] Add tenstad

* fix: remove settings disabled by default

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

* fix: add serial and transport to json

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

* fix: format json

* docs: update img url

* fix: delete now-redundant rules.mk

* fix: format keymap.json (keeping 'layout' at the top)

---------

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
2024-11-08 21:24:00 -07:00
Danny Tan
10849dac68 Add Fuyu HS (#24567)
* Add Fuyu HS

* Fix keyboard.json linting

* Fix rgbmatrix configuration

* Apply suggestions from code review

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

---------

Co-authored-by: Joel Challis <git@zvecr.com>
2024-11-08 21:23:31 -07:00
QMK Bot
94b6039620 Merge remote-tracking branch 'origin/master' into develop 2024-11-09 04:22:23 +00:00
Danny Tan
fb3a414a40 Add Idyllic Pizza Pad (#24566)
* Initial PizzaPad firmware

* Updated files to conform to PR checklist

* Fix default keymap location

* Update keyboard.json

* Apply suggestions from code review

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

* Update keyboards/idyllic/pizzapad/keymaps/default/keymap.c

Co-authored-by: jack <jack@pngu.org>

---------

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: jack <jack@pngu.org>
2024-11-08 21:21:52 -07:00
QMK Bot
fca6ad4ebc Merge remote-tracking branch 'origin/master' into develop 2024-11-08 09:10:10 +00:00
Akshay
e31eeb85db added support for shorty KB (#24518)
* added support for shorty KB

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-11-08 09:09:35 +00:00
Eric N. Vander Weele
9523ed9e32 Expose rgb_matrix_update_pwm_buffers to be available in keymaps (#24573)
* Expose rgb_matrix_update_pwm_buffers to be available in keymaps

Exposing this API enables the examples in the keyboard shutdown/reboot
documentation to compile instead of calling `rgb_matrix_driver.flush`
directly.

* Remove extraneous rgb_matrix_update_pwm_buffers prototype declarations

Now that `rgb_matrix_update_pwm_buffers` is public, there isn't the need
for local prototype declarations.
2024-11-07 23:12:59 -07:00
QMK Bot
b17322b9b8 Merge remote-tracking branch 'origin/master' into develop 2024-11-08 04:57:57 +00:00
Nick Brassel
580d18d2e9 Speed improvements to qmk find. (#24385) 2024-11-08 04:57:22 +00:00
QMK Bot
b10fa5032f Merge remote-tracking branch 'origin/master' into develop 2024-11-08 02:53:15 +00:00
HereVoLand
4f9ef90754 Add keyboard buff75 (#24297)
* Create herevoland

* Delete keyboards/herevoland

* Add files via upload

* Delete keyboards/herevoland/buff75 directory

* Add files via upload

* Delete keyboards/herevoland/buff75/buff75.h

* Delete keyboards/herevoland/buff75/rules.mk

* Delete keyboards/herevoland/buff75/halconf.h

* Update and rename info.json to keyboard.json

* Delete keyboards/herevoland/buff75/matrix_diagram.md

* Update readme.md

* Update readme.md

* Add files via upload

* Delete keyboards/herevoland/buff75/keymaps/via directory

* Update readme.md

* Update keymap.c

* Update matrix_diagram.md

* Update readme.md

* Update keyboard.json

* Update readme.md

* Update matrix_diagram.md

* Update keyboard.json

* Update keymap.c

* Update keymap.c

* Update keyboard.json

* Update mcuconf.h

* Delete keyboards/herevoland/buff75/mcuconf.h
2024-11-07 19:52:41 -07:00
QMK Bot
f2a7f4b804 Merge remote-tracking branch 'origin/master' into develop 2024-11-08 00:59:05 +00:00
Christian C. Berclaz
3cda9ffcd6 Adding support for Windstudio's Wind X R1 keyboard (#24564)
* Added a default firmware and layout for the WindStudio Wind X R1
keyboard.

* Wind X R1: cleaned-up the folders to make clear that this firmware is
for the release 1 of this keyboard.

* Added rules.mk to the default layout

* Renamed the folder R1 into r1.

* Added readme.md files for the keyboard and default layout.

* Added a license header to keymap.c

* Update keyboards/windstudio/wind_x/r1/keyboard.json

Co-authored-by: jack <jack@pngu.org>

* Update keyboards/windstudio/wind_x/r1/keyboard.json

Co-authored-by: jack <jack@pngu.org>

* Update keyboards/windstudio/wind_x/r1/keymaps/default/keymap.c

Co-authored-by: jack <jack@pngu.org>

* Update keyboards/windstudio/wind_x/r1/readme.md

Co-authored-by: jack <jack@pngu.org>

* Added a proper link to the image (logo of windstudio)

* Wind X R1
- Corrected the default keymap with the QK_GESC key instead of the
  KC_ESC.
- Removed the unnecessary rules.mk in the default layout

* Wind X R1:
applied `qmk format-json -i` on keyboard.json to conform with the
project formatt standards.

* Added a picture of the keyboard.

* Added a caption to the image.

---------

Co-authored-by: jack <jack@pngu.org>
2024-11-07 17:58:57 -07:00
Bennett Balogh
54860ed238 [Keyboard] Add Teton78 (#24562)
* Added Teton_78 qmk keyboard files

* Fixed a syntax issue

* Waffles suggested changes

* Read me updated

Used the Alpine65 reame to model off.

* Update keyboards/mountainmechdesigns/teton_78/keymaps/default/keymap.c

Co-authored-by: jack <jack@pngu.org>

* Accidental File

* Updated readme with missing info

* Update readme.md

* Update keyboards/mountainmechdesigns/teton_78/readme.md

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

* Update keyboards/mountainmechdesigns/teton_78/readme.md

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

* Update keyboards/mountainmechdesigns/teton_78/readme.md

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

---------

Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2024-11-07 17:58:33 -07:00
QMK Bot
83950c7dd9 Merge remote-tracking branch 'origin/master' into develop 2024-11-06 07:47:08 +00:00
Diego Andres Rabaioli
f4e6af2dbe Adding SdraKb00 keyboard (#24552)
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2024-11-06 00:46:17 -07:00
QMK Bot
7877023b48 Merge remote-tracking branch 'origin/master' into develop 2024-11-06 07:45:57 +00:00
Michael Büchler
f5f11b7c79 Add keyboards/converter/thinkpad_t6x/rpi_pico (#23696) 2024-11-06 00:45:20 -07:00
QMK Bot
cfb870d219 Merge remote-tracking branch 'origin/master' into develop 2024-11-06 07:44:10 +00:00
takashicompany
6fbfd659ff Add new keyboard "KLEC-02" (#24559)
Co-authored-by: jack <0x6a73@protonmail.com>
2024-11-06 00:43:35 -07:00
QMK Bot
81a6f3e641 Merge remote-tracking branch 'origin/master' into develop 2024-11-03 20:14:27 +00:00
takashicompany
c8cdee3e4e [Keyboard] Add KLEC-01 (#24543) 2024-11-03 12:13:56 -08:00
Joel Challis
292e0af293 Bump minimum required Python version (#24554) 2024-10-31 23:21:20 +00:00
QMK Bot
f1f875063c Merge remote-tracking branch 'origin/master' into develop 2024-10-30 11:27:27 +00:00
Joel Challis
465cbc87de Handle 'MILCInterface' object has no attribute 'log_level' error (#24549) 2024-10-30 11:26:53 +00:00
QMK Bot
834f88b0a3 Merge remote-tracking branch 'origin/master' into develop 2024-10-30 05:44:03 +00:00
Joel Challis
6693a30671 Remove appdirs from requirements.txt (#24550) 2024-10-30 05:43:31 +00:00
QMK Bot
114b3db96a Merge remote-tracking branch 'origin/master' into develop 2024-10-30 05:17:31 +00:00
Joel Challis
e6daffce46 Handle cli._subcommand.__name__ deprecation warning (#24533) 2024-10-30 05:16:59 +00:00
QMK Bot
b8dd09994a Merge remote-tracking branch 'origin/master' into develop 2024-10-29 15:56:59 +00:00
leyew
92afc8198a [Keyboard] Add Singa Kohaku (#24309)
Co-authored-by: jack <jack@pngu.org>
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-10-29 09:56:23 -06:00
Cipulot
2aa186873e Cipulot Updates (#24539) 2024-10-28 19:54:05 +00:00
フィルターペーパー
06b7dce565 Refactor LED Breathing effect with runner (#24540) 2024-10-28 10:56:54 -07:00
QMK Bot
95406717e7 Merge remote-tracking branch 'origin/master' into develop 2024-10-28 07:00:26 +00:00
Thanh Son Tran
7c9e650b1c [Keyboard] Add S6xty PCB (#24465)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Trần Thanh Sơn <son.tt1@teko.vn>
2024-10-27 23:59:54 -07:00
David Hoelscher
7630a80791 Change default ARM hardware PWM WS2812 tick frequency to 800kHz (#24508) 2024-10-27 23:29:43 -07:00
Nikolai Grigoriev
2c0cdcf7b2 Improve consistency of syntax within data/constants/keycodes (#24528) 2024-10-28 06:23:15 +00:00
フィルターペーパー
25fac5e737 Refactor Breathing effect with runner (#24535) 2024-10-27 23:20:38 -07:00
フィルターペーパー
dd7287bf4e Update Jellybean Raindrops to respect LED range limits (#24534) 2024-10-27 23:20:14 -07:00
フィルターペーパー
d9fedce9b9 Update Pixel Rain to respect LED range limits (#24532) 2024-10-27 23:19:45 -07:00
QMK Bot
01f6fa7cd6 Merge remote-tracking branch 'origin/master' into develop 2024-10-28 05:51:14 +00:00
フィルターペーパー
644588baef Refactor Riverflow matrix effect with runner (#24520)
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-10-27 22:51:01 -07:00
Guido Bartolucci
7005522176 Add madjax_macropad keyboard (#24524)
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-10-27 22:50:42 -07:00
Dasky
f5b495e06e Move pointing device driver code (#24445)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-10-25 18:11:51 +01:00
Dasky
5c85271e48 Add timer_save and _restore functions. (#23887)
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2024-10-25 18:10:17 +01:00
QMK Bot
f486605bab Merge remote-tracking branch 'origin/master' into develop 2024-10-25 05:36:38 +00:00
Felix Jen
32b6faaf35 Add Vanguard65 Keyboard (#24497)
* Initial commit

* update

* added two options for the slider

* comments

* added rounding for the lower end of the LED values

* moved folder, cleaned up code

* fixed layout def

* fioxed default layout

* Update keyboards/keebfront/vanguard65/config.h

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

* Update keyboards/keebfront/vanguard65/keymaps/via/keymap.c

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

* Update keyboards/keebfront/vanguard65/keymaps/via/keymap.c

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

* Update keyboards/keebfront/vanguard65/readme.md

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

* Update keyboards/keebfront/vanguard65/rules.mk

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

* Update keyboards/keebfront/vanguard65/info.json

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

* updated default keymap to have encoder map functionality

* Update keyboards/keebfront/vanguard65/rules.mk

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

* Update keyboards/keebfront/vanguard65/config.h

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

* Update keyboards/keebfront/vanguard65/config.h

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

* add encoder_update_kb

* Update keyboards/keebfront/vanguard65/vanguard65.c

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

* Update keyboards/keebfront/vanguard65/info.json

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

* Update keyboards/keebfront/vanguard65/info.json

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

* Update keyboards/keebfront/vanguard65/vanguard65.c

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

* new qmk

* misc fixes

* Test

* Removed extraneous parts of hte rules.mk

* Remove extra layers in the keymap

* Revert "Remove extra layers in the keymap"

This reverts commit c82ee931ac.

* removed excess layers

* update for latest QMK led definition

* update

* Update keyboards/keebfront/vanguard65/info.json

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

* Update keyboards/keebfront/vanguard65/keymaps/via/keymap.c

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

* Update keyboards/keebfront/vanguard65/info.json

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

* Update keyboards/keebfront/vanguard65/info.json

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

* Update keyboards/keebfront/vanguard65/keymaps/default/keymap.c

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

* Update keyboards/keebfront/vanguard65/keymaps/via/keymap.c

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

* Update keyboards/keebfront/vanguard65/readme.md

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

* Update keyboards/keebfront/vanguard65/keymaps/default/keymap.c

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

* Update keyboards/keebfront/vanguard65/info.json

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

* Update keyboards/keebfront/vanguard65/keymaps/default/keymap.c

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

* Update keyboards/keebfront/vanguard65/keymaps/via/keymap.c

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

* Update keyboards/keebfront/vanguard65/info.json

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

* Delete vanguard65.c

* run qmk format_json

* Update keyboards/keebfront/vanguard65/rules.mk

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

* Update keyboards/keebfront/vanguard65/readme.md

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

* Update keyboards/keebfront/vanguard65/readme.md

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

* Update keyboards/keebfront/vanguard65/info.json

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

* Update keyboards/keebfront/vanguard65/keymaps/default/keymap.c

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

* Update keyboards/keebfront/vanguard65/keymaps/via/keymap.c

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

* Update keyboards/keebfront/vanguard65/keymaps/via/keymap.c

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

* Update keyboards/keebfront/vanguard65/keymaps/default/keymap.c

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

* Update keyboards/keebfront/vanguard65/info.json

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

* Update keyboards/keebfront/vanguard65/keymaps/via/keymap.c

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

* Update keyboards/keebfront/vanguard65/keymaps/default/keymap.c

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

* Update keyboards/keebfront/vanguard65/keymaps/default/keymap.c

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/keebfront/vanguard65/keymaps/default/keymap.c

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Confirm all keymaps compile

* update for latest QMK best definitions

* Apply suggestions from code review

Co-authored-by: jack <jack@pngu.org>

* Added minimum slider functionality.

* update readme

* Apply suggestions from code review

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

* Update keyboards/keebfront/vanguard65/keyboard.json

Co-authored-by: jack <jack@pngu.org>

---------

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>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Joel Challis <git@zvecr.com>
2024-10-24 23:35:53 -06:00
QMK Bot
d00df05df1 Merge remote-tracking branch 'origin/master' into develop 2024-10-25 05:25:43 +00:00
era
bf327f7a81 [Keyboard] Add SIRIND Tomak79H (#24505)
* Add Tomak79H

Add Tomak79H

* Update

Update

* Update keyboards/era/sirind/tomak79h/tomak79h.c

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

---------

Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-10-24 23:25:12 -06:00
QMK Bot
d316331ab1 Merge remote-tracking branch 'origin/master' into develop 2024-10-24 09:05:24 +00:00
Daniel Weeks
3b874ee434 [Keyboard] Add xdboards/recon keyboard (#24135)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-10-24 02:04:51 -07:00
Ryan
bb9625ba55 RGBLight: Improve RGB Test animation (#24477) 2024-10-24 15:27:24 +11:00
QMK Bot
11db924a31 Merge remote-tracking branch 'origin/master' into develop 2024-10-23 02:14:47 +00:00
Danny
453ec007c1 Add Iris LM series of keyboards (#24510) 2024-10-22 22:14:12 -04:00
QMK Bot
b2608e3162 Merge remote-tracking branch 'origin/master' into develop 2024-10-21 21:38:44 +00:00
Jan Bláha
459de98222 Fix 6x13 default keymap (#24509)
Update keymap.c
2024-10-21 22:38:11 +01:00
Ramon Imbao
c6b2553470 Rename saevus to concreteflowers (#24249) 2024-10-19 13:25:30 +01:00
Drashna Jaelre
baa29fef9d [Bug] Fix compiliation issues with OS Detection (#24502) 2024-10-19 12:24:42 +02:00
QMK Bot
22e6a8d15e Merge remote-tracking branch 'origin/master' into develop 2024-10-18 08:06:12 +00:00
Duncan Sutherland
7f22cb52e3 Correct layouts/default/readme.md (#23805)
Update readme.md

remove orphan layout
2024-10-18 19:04:29 +11:00
Stefan Kerkmann
3f9d464412 [Core] usb_device_state: consolidate usb state handling across implementations (#24258)
* usb_device_state: add idle_rate, led and protocol

Previously all usb drivers and platform implementations (expect for our
oddball atsam) tracked the same two global variables:

- keyboard_protocol: to indicate if we are in report or boot protocol
- keyboard_idle: for the idle_rate of the keyboard endpoint

And a local variable that was exposed trough some indirection:

- keyboard_led_state: for the currently set indicator leds (caps lock etc.)

These have all been moved into the usb_device_state struct wich is
accessible by getters and setters.

This reduces code duplication and centralizes the state management
across platforms and drivers.

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

* usb_device_state: reset protocol on reset

The usb hid specification section 7.2.6 states:

When initialized, all devices default to report protocol. However the
host should not make any assumptions about the device’s state and should
set the desired protocol whenever initializing a device.

Thus on reset we should always do exactly that.

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

* keyboards: fix oversize warnings

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

---------

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
2024-10-18 09:57:08 +02:00
QMK Bot
80f8aae3ec Merge remote-tracking branch 'origin/master' into develop 2024-10-17 16:06:54 +00:00
David Doan
36008922f8 add vector macropad (#24487)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-10-17 10:06:17 -06:00
QMK Bot
6602ee04af Merge remote-tracking branch 'origin/master' into develop 2024-10-16 16:17:06 +00:00
Alabahuy
2ad13037ab [Keyboard] Add JK60 RGB (#24485) 2024-10-16 10:16:31 -06:00
QMK Bot
7e53bb9965 Merge remote-tracking branch 'origin/master' into develop 2024-10-15 14:06:17 +00:00
Ryan
85a7627641 Digitizer: fix units tag in report descriptor (#24482) 2024-10-15 07:05:43 -07:00
Joel Challis
13581820b8 horrortroll/nyx/rev1: Fix compilation of custom RGB effect (#24481) 2024-10-13 11:35:35 +11:00
Joel Challis
d0d170e6a0 xiudi/xd002: Remove broken oversized multilayer_rgb keymap (#24480) 2024-10-12 12:19:18 -07:00
Joel Challis
dd0068cfd4 keebio/nyquist: Remove invalid I2C config (#24479) 2024-10-12 12:18:23 -07:00
Ryan
9884e4982b Rename RGB/HSV structs: keyboard-level code (#24476) 2024-10-12 19:00:56 +01:00
Stefan Kerkmann
5478051d74 [Core] quantum: util: add bit and bitmask helpers (#24229)
quantum: util: add bit and bitmask helpers

These helpers are handy and can prevent off-by-one errors when working
with registers and general low level bit manipulation tasks. The macros
themself are inspired by the bits.h macros from the linux kernel source
code.

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
Co-authored-by: Pascal Getreuer <50221757+getreuer@users.noreply.github.com>
2024-10-12 18:48:00 +02:00
Ryan
6fa11bf219 Separate RGBLight/RGB Matrix keycode handling (#23679)
* Separate RGBLight/RGB Matrix keycode handling

* Remove `_DISABLE_KEYCODES` handling

* Update RGB Matrix keycode docs

* Update underglow keycodes for previously migrated boards

* Update keycodes for boards with custom handling

* Fix typos

* Fix bad merge
2024-10-12 18:43:50 +02:00
QMK Bot
5c97a78ce6 Merge remote-tracking branch 'origin/master' into develop 2024-10-11 23:30:07 +00:00
Joel Challis
11daef82e0 zsa/moonlander: Fix execution of user callback (#24475) 2024-10-11 16:29:32 -07:00
Sadek Baroudi
9d17779832 Add svlinky converter (#24449) 2024-10-12 00:16:25 +01:00
フィルターペーパー
8844fba607 Update combo user function variable (#24467) 2024-10-12 00:13:31 +01:00
Ryan
6129af93f4 Rename RGB and HSV structs (#24471) 2024-10-12 00:10:02 +01:00
Joel Challis
a10e7cc858 Fix rendering of keymap_config.no_gui within led_update_kb (#24473) 2024-10-12 00:06:10 +01:00
Joel Challis
40d49ee487 Fix duplication of core GU_TOGG keycode (#24474) 2024-10-12 00:05:57 +01:00
QMK Bot
9246163b77 Merge remote-tracking branch 'origin/master' into develop 2024-10-11 15:49:32 +00:00
Ryan
c95f0fb671 mykeyclub/jris65/hotswap: fix keymap (#24472) 2024-10-11 09:48:59 -06:00
QMK Bot
049865c30c Merge remote-tracking branch 'origin/master' into develop 2024-10-11 03:31:45 +00:00
Woodrow Douglass
f0b5feb858 fix hotdox76v2 oled font to more closely mirror utf8 (#23807) 2024-10-10 20:31:08 -07:00
QMK Bot
eac4053a07 Merge remote-tracking branch 'origin/master' into develop 2024-10-11 03:28:29 +00:00
Joe Scotto
f43c9127bf Add Scotto37 handwired keyboard (#23938)
Co-authored-by: Joel Challis <git@zvecr.com>
2024-10-10 20:27:56 -07:00
Victor
27d68ef8b9 Add Ploopyco functions for host state control (#23953) 2024-10-10 20:27:15 -07:00
QMK Bot
c8a87ff3fe Merge remote-tracking branch 'origin/master' into develop 2024-10-11 03:01:33 +00:00
azhizhinov
4055798807 [Keyboard] Add Piantor UV 44 (#24247)
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-10-10 20:01:00 -07:00
QMK Bot
29bc842fe2 Merge remote-tracking branch 'origin/master' into develop 2024-10-10 19:55:27 +00:00
Drashna Jaelre
49a1a12a32 Expand count checks in keymap introspection (#24464)
* Add check Tap Dance count check to keymap introspection

* Add checks for combos and key overrides to introspection
2024-10-11 06:54:53 +11:00
QMK Bot
00db6f2397 Merge remote-tracking branch 'origin/master' into develop 2024-10-09 04:31:06 +00:00
フィルターペーパー
fb598e7e61 Fixup Lily58 keymap comment (#24466) 2024-10-09 05:30:32 +01:00
QMK Bot
8cc6127668 Merge remote-tracking branch 'origin/master' into develop 2024-10-08 18:51:56 +00:00
yiancar
c0d57a6826 Fix indicator code for NK classics (#24462)
Fix indicator code

Co-authored-by: yiancar <yiancar@gmail.com>
2024-10-08 12:51:23 -06:00
Duncan Sutherland
c3ffbe4504 add ergodox Community Layout for LAYOUT_ergodox keyboards (#22963)
initial commit
2024-10-07 17:29:43 +13:00
QMK Bot
8c27ae8fd7 Merge remote-tracking branch 'origin/master' into develop 2024-10-07 04:29:33 +00:00
Álvaro A. Volpato
1a284f2b92 Fix Caps Lock indication on Valhalla v2 (#23012)
* Fix Caps Lock indication

* User LED state function override added

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

* Change backlight enabled check and remove backlight headers

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

---------

Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-10-07 17:29:03 +13:00
QMK Bot
3a5be8bd22 Merge remote-tracking branch 'origin/master' into develop 2024-10-06 17:27:18 +00:00
Joel Challis
f25624dca4 Fix thumbsup:default keymap (#24459) 2024-10-06 18:26:48 +01:00
QMK Bot
a428727897 Merge remote-tracking branch 'origin/master' into develop 2024-10-06 17:02:01 +00:00
sizezero
035dcf213c Add keyboard Jris65 (#23936)
* first compiled, flashed, and tested version of jris65

* adding readmes for mykeyclub and jris65

* removed commented out code and unneeded files

* typo in build instructions

* renamed info.json to keyboard.json as per new standard

* formatted with qmk format-json

* fixed layout offset problem

* moved some settings from c/h files to json

* moved matrix from .h file to .json

* cleaned up non-json options

* moved settings from rules.mk to keyboard.json

* fix for via after removing .h file

* converted keymap.c to keymap.json

* keymap.c has been replaced by keymap.json

* FN+Backspace loads bootload

* added custom keymap for Sean

* config.h setting is only needed by via

* formatted json

* convert via keymap from .c .h .mk to keymap.json

* moved keyboard configuration to hotswap dir; note in readme that only hotswap has been tested

* Update keyboards/mykeyclub/jris65/keymaps/default/keymap.json

Co-authored-by: jack <jack@pngu.org>

* typo

Co-authored-by: jack <jack@pngu.org>

* blank layers do not need to be specified

Co-authored-by: jack <jack@pngu.org>

* added other valid layouts

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

* added other valid layouts

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

* added other valid layouts

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

* added other valid layouts

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

* removed extra newline

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

* cleaned up wording in readme

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

* QMK no longer supports user keymaps

* remove settings that are already the default (false settings)

Co-authored-by: jack <jack@pngu.org>

* add image

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

* add missing commas (formatting)

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

* add missing commas (formatting)

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

* add missing commas (formatting)

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

* re-added second layer with QK_BOOT for backspace

* make the hotswap the default keyboard

* added keyboard director prefix to DEFAULT_FOLDER

* ran qmk format-json on keyboard.json

* DEFAULT_FOLDER option is going away so don't use it

* removed via keymap as they now reside in qmk_userspace_via

---------

Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2024-10-06 11:01:30 -06:00
eynsai
2cb35373c6 Extended wheel reports (#24422)
extended wheel reports
2024-10-06 11:26:55 +02:00
QMK Bot
bf6de46d7f Merge remote-tracking branch 'origin/master' into develop 2024-10-06 09:09:10 +00:00
ak66666
7446c6ea7d Added a new keyboard ThumbsUp! v9 with a default keymap (#23800)
* Added a cleaned-up set of files for ThumbsUp! v9.

* Renamed the keymap for v9 as default

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

As per PR review suggestions.

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

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

As per PR review suggestions.

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

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

As per PR review suggestions.

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

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

As per PR review suggestions.

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

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

As per PR review suggestions.

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

* Update keyboards/thumbsup/rev9_promicro_4x12/info.json

As per PR review suggestions.

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

* Update keyboards/thumbsup/rev9_promicro_4x12/readme.md

As per PR review suggestions.

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

* Update keyboards/thumbsup/rev9_promicro_4x12/readme.md

As per PR review suggestions.

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

* Update keyboards/thumbsup/rev9_promicro_4x12/rules.mk

As per PR review suggestions.

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

* Update keyboards/thumbsup/rev9_promicro_4x12/info.json

As per PR review suggestions.

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

* Apply suggestions from code review

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

* Delete keyboards/thumbsup/keymaps/default/readme.md as per review recommendation.

* v9: Fixed the layout name in keymap.c file.

* v9: PR recommendatios applied - rules.mk file removed, info.json renamed to keyboard.json.

* v9: PR recommendatios applied - rules.mk file removed, info.json renamed to keyboard.json.

* v9: Fixed the copyright header modified by mistake.

* v9: Fixed the tri-layer switch as per the review recommendation.

* v9: Fixed the copyright header modified by mistake.

---------

Co-authored-by: jack <0x6a73@protonmail.com>
2024-10-06 22:08:18 +13:00
Drashna Jaelre
c9cd92ece3 [Keyboard] Corne rev4 (#24084)
* [Keyboard] Corne rev4

* Remove unneeded update interval and moved split pin to dd

* Cleanup config and errors

* Move bootmagic config to dd

* Re-add existing configs

* Additional config fixes

* shove off via keymap
2024-10-06 22:05:10 +13:00
QMK Bot
ddfb8765ec Merge remote-tracking branch 'origin/master' into develop 2024-10-06 09:01:57 +00:00
Robin Haberkorn
ff21363627 ibm/model_m/modelh: added ISO layout and keymap for Wheelwriter 10/15 keyboard modules (#24248)
These are probably compatible with the Wheelwriter 1000 as well.
2024-10-06 22:01:20 +13:00
QMK Bot
d381bb7258 Merge remote-tracking branch 'origin/master' into develop 2024-10-06 08:57:52 +00:00
Steven Karrmann
c2dd0c1845 Update Janus keyboard firmware to use EE_HANDS (#24261)
* Use EE_HANDS https://docs.qmk.fm/features/split_keyboard#handedness-by-eeprom

* Update Janus readme to indicate EEPROM handedness is used
2024-10-06 21:52:56 +13:00
QMK Bot
50e54d8e1a Merge remote-tracking branch 'origin/master' into develop 2024-10-06 08:52:12 +00:00
rahanahu
13a87ad354 hotdox76v2: Update g_led_config.matrix_co to fix key electrical matrix to led index lookup table. (#24293)
update g_led_config on hotdox76v2/hotdox76v2.c

Co-authored-by: rahanahu <ra87who@gmail.com>
2024-10-06 21:51:06 +13:00
Andre Brait
7f475b590a Tweak OS detect, add OS_DETECTION_SINGLE_REPORT (#24379)
* Default OS_DETECTION_DEBOUNCE bumped from 200ms to 250ms
* Add OS_DETECTION_SINGLE_REPORT to prevent undesired multiple reports
* Prevents random stability issues on ARM MacBooks after switching via KVM
* Works for every device I could test, including ARM MacBooks
* Disabled by default to keep current behavior
* Add Troubleshooting section on documentation
* Tweak reset logic to prevent a freeze with some KVMs

The USB stack on ARM MacBooks is more similar to that of iOS and,
for some reason, it seems to like sending packets that influence
the OS detection and results in a second OS_MACOS report being sent
at a random period of time after plugging the keyboard back. This
does not always happen and the consequences of this vary based on
what the user is doing in the callback, but since this is not
obvious and it's hard to debug, I've decided to add a flag for
those affected by such issue. The stability issue I had in mine was
a combination of factors and I found the actual cause being my own
bad math when changing the default layer, but this change alone is
also confirmed to fix it. Lastly, soem KVMs seem to leave the USB
controlled in a suspended state when cold-booting Windows, meaning
the keyboard would hang and the reset logic would not work. This
tunes it so that it can get out of such state. Also retested for
compatibility with my old KVM to ensure the logic works for both.
2024-10-06 21:50:39 +13:00
durken1
a322107cb7 add USART configuration to config.h for PS/2 mouse support (#24398) 2024-10-06 21:47:15 +13:00
Nick Brassel
305e7baa71 Allow for get_hardware_id() to be used for serial number. (#24053)
* Allow for `get_hardware_id()` to be used for serial number.

* Length checks.

* Explain length.

* Cleanup.

* Preprocessor magic.

* Use the force, Batman.

* Swap logic; if SERIAL_NUMBER is defined use that, otherwise derive it.

* Cleanup.

* Cleanup.
2024-10-06 21:44:36 +13:00
QMK Bot
65b5dc7e0f Merge remote-tracking branch 'origin/master' into develop 2024-10-06 08:40:06 +00:00
Nick Brassel
c82f675266 Install dnf copr plugin if not present (i.e. docker containers). (#24308)
* Install `dnf copr` plugin if not present (i.e. docker containers).

* Don't need to skip prompt when invoking help.
2024-10-06 21:39:37 +13:00
Andre Brait
3cf94cb308 Add easier way to set default single layer (#24376)
* Add set_single_default_layer to match set_single_persistent_default_layer
* Implements exactly the same behavior, except the write to EEPROM
2024-10-06 21:39:21 +13:00
Ryan
208ebf54a9 WS2812 API rework (#24364)
* Begin WS2812 API rework

* Move RGBW conversion, clean up color.h, fix RGBW for AVR bitbang

* Formatting & update PS2AVRGB I2C driver (untested)

* Tested ARM bitbang RGB+RGBW

* Tested ARM SPI RGB - RGBW not working

* Tested ARM PWM RGB+RGBW

* Tested RP2040 PIO driver RGB+RGBW

* Update RGBLight

* Formatting

* Fix BM60HSRGB rev2

* Fix oddforge/vea

* Fix 1k and XD002 RGBLite

* Fix model_m/mschwingen

* Fix handwired/promethium

* Rename `WS2812_LED_TOTAL` for BM60HSRGB

* Fix work_louder boards

* Fix dawn60

* Fix rgbkb/pan

* Fix neson_design/700e and n6

* Fix ergodox_ez/shine

* ergodox_ez/shine: invert indices for left half

* Fix matrix/abelx

* Fix matrix/m20add

* Remove custom rgblight driver for matrix/noah - should be done with lighting layers

* Fix LED indexes for RGBLight split

* Rename `convert_rgb_to_rgbw()` to `ws2812_rgb_to_rgbw()`

* Update WS2812 API docs

* `ergodox_ez/shine`: simplify LED index calculation

* LED/RGB Matrix: Add weak function for LED index resolution

* Bandaid fix for RGB Matrix splits not using WS2812

* `steelseries/prime_plus`: redo custom RGBLight driver

* Update keyboards/steelseries/prime_plus/rgblight_custom.c

Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>

---------

Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
2024-10-06 21:01:07 +13:00
Dasky
43e82ed5c7 Remove binary blobs from optical sensors. (#24428)
* remove pmw srom

* remove adns9800 srom

* Update drivers/sensors/pmw33xx_common.c
2024-10-06 20:41:55 +13:00
QMK Bot
3d8cebb1a0 Merge remote-tracking branch 'origin/master' into develop 2024-10-05 16:16:55 +00:00
yiancar
e12c1fefdf NK Classic TKL ISO (#24434)
* initial_commit

* fix keymap

* Update keyboards/novelkeys/nk_classic_tkl_iso/keyboard.json

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

---------

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2024-10-05 10:16:25 -06:00
QMK Bot
4bb3741288 Merge remote-tracking branch 'origin/master' into develop 2024-10-03 00:29:10 +00:00
anubhav dhiman
6a73c8299b Add atset AT2 keyboard (#24099)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: zvecr <git@zvecr.com>
2024-10-02 17:28:41 -07:00
QMK Bot
04c5deb503 Merge remote-tracking branch 'origin/master' into develop 2024-10-03 00:28:08 +00:00
DOIO2022
6374bad540 Add KB09-01 keyboard (#24044)
Co-authored-by: jack <jack@pngu.org>
2024-10-02 17:27:36 -07:00
QMK Bot
a1597e7292 Merge remote-tracking branch 'origin/master' into develop 2024-09-30 19:31:35 +00:00
dependabot[bot]
b78118b2dd Bump JamesIves/github-pages-deploy-action from 4.6.4 to 4.6.8 (#24453)
Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.4 to 4.6.8.
- [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases)
- [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.4...v4.6.8)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-30 20:31:03 +01:00
QMK Bot
62367b2133 Merge remote-tracking branch 'origin/master' into develop 2024-09-30 00:23:53 +00:00
Pham Duc Minh
015cd23616 [Keyboard] Add DE80 PCB (#24439) 2024-09-30 01:23:21 +01:00
QMK Bot
e31ef83495 Merge remote-tracking branch 'origin/master' into develop 2024-09-29 23:27:00 +00:00
Ryan
f18a699393 [docs] reference_info_json: add type hints (#24443) 2024-09-30 00:26:31 +01:00
QMK Bot
1118821178 Merge remote-tracking branch 'origin/master' into develop 2024-09-28 00:58:56 +00:00
Joel Challis
4d6337539d Revert "Bump JamesIves/github-pages-deploy-action from 4.6.4 to 4.6.6" (#24450)
Revert "Bump JamesIves/github-pages-deploy-action from 4.6.4 to 4.6.6 (#24446)"

This reverts commit 17fac880bf.
2024-09-28 01:58:22 +01:00
QMK Bot
c7fec10bd7 Merge remote-tracking branch 'origin/master' into develop 2024-09-27 19:39:02 +00:00
dependabot[bot]
17fac880bf Bump JamesIves/github-pages-deploy-action from 4.6.4 to 4.6.6 (#24446)
Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.4 to 4.6.6.
- [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases)
- [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.4...v4.6.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-27 20:38:32 +01:00
QMK Bot
928b5fdf50 Merge remote-tracking branch 'origin/master' into develop 2024-09-26 18:44:11 +00:00
Eric
805cde674d input_club/ergodox_infinity ST7565 call spi_stop (#24429) 2024-09-26 11:43:39 -07:00
QMK Bot
81895940e6 Merge remote-tracking branch 'origin/master' into develop 2024-09-25 19:25:35 +00:00
nopunin10did
f7393a5ab8 Fix jabberwocky key coordinates in QMK Configurator (#24435) 2024-09-25 20:25:03 +01:00
Nick Brassel
9a8f5a80e4 Remove RING_BUFFERED_6KRO_REPORT_ENABLE due to disuse. (#24433) 2024-09-24 12:53:55 +01:00
Joel Challis
a7486a8d87 Remove STM32_PWM_USE_ADVANCED references (#24432) 2024-09-24 21:04:15 +10:00
QMK Bot
c622e1439c Merge remote-tracking branch 'origin/master' into develop 2024-09-24 08:55:52 +00:00
dependabot[bot]
93cc3f58b1 Bump rollup from 4.16.4 to 4.22.4 in /builddefs/docsgen (#24430)
Bumps [rollup](https://github.com/rollup/rollup) from 4.16.4 to 4.22.4.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.16.4...v4.22.4)

---
updated-dependencies:
- dependency-name: rollup
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-24 09:55:18 +01:00
QMK Bot
5da5b179d5 Merge remote-tracking branch 'origin/master' into develop 2024-09-21 18:49:05 +00:00
pancho horrillo
6a536d5588 .editorconfig: fix inline comment, tidy name section for yaml (#24416) 2024-09-21 19:48:31 +01:00
QMK Bot
a0bce36aa1 Merge remote-tracking branch 'origin/master' into develop 2024-09-21 17:34:27 +00:00
studiokestra
4665d9c405 [Keyboard] Add Fairholme PCB (#24400)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2024-09-21 10:29:12 -07:00
QMK Bot
bda3300bb3 Merge remote-tracking branch 'origin/master' into develop 2024-09-21 17:25:09 +00:00
Joe Scotto
2e86b05cab Add Scotto69 (PCB Edition) (#24402)
Co-authored-by: Joel Challis <git@zvecr.com>
2024-09-21 10:24:38 -07:00
Dasky
90b87abb11 Add SteelSeries Prime+ mouse (#24408)
Co-authored-by: Joel Challis <git@zvecr.com>
2024-09-20 15:17:49 +10:00
QMK Bot
9cbb4a2c4c Merge remote-tracking branch 'origin/master' into develop 2024-09-20 01:29:28 +00:00
plodah
61778f6136 Fix a_jazz/akc084 render (#24411)
* Alter ZXC row to have y index of 4 and bottom row to have index of 5

* Fix other issues with `]}`,  `'"` & Enter - pointed out by noroadsleft
2024-09-19 18:28:57 -07:00
QMK Bot
17be3e4a54 Merge remote-tracking branch 'origin/master' into develop 2024-09-18 14:46:48 +00:00
Dasky
1c03574424 Fix ADNS-9800 read (#24406) 2024-09-18 15:46:13 +01:00
Dasky
49e339ba8d Add LD7032 support to QP. (#20828)
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2024-09-18 21:44:33 +10:00
QMK Bot
7983f7409b Merge remote-tracking branch 'origin/master' into develop 2024-09-18 09:07:31 +00:00
kbladewht
42f1763db9 Workaround for broken STM32L433 startup (#24404)
Change STM32L433 LSI to False, this is to fix board startup issue , change is same to stm32L432 board
2024-09-18 19:06:50 +10:00
QMK Bot
a93144834c Merge remote-tracking branch 'origin/master' into develop 2024-09-18 08:57:18 +00:00
dependabot[bot]
e7c009c142 Bump vite from 5.2.10 to 5.2.14 in /builddefs/docsgen (#24403)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.2.10 to 5.2.14.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.2.14/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.2.14/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-18 09:56:46 +01:00
Ryan
e84104fe8d Reinstate global k_rgb_matrix_split (#24388) 2024-09-15 10:08:29 +10:00
QMK Bot
d48aac6a2c Merge remote-tracking branch 'origin/master' into develop 2024-09-14 22:09:32 +00:00
jack
aa05fa649f Update PR template (#24397)
Initial
2024-09-14 16:09:01 -06:00
QMK Bot
64f533fa47 Merge remote-tracking branch 'origin/master' into develop 2024-09-13 20:53:01 +00:00
Sergey Vlasov
0b3ece1189 qmk find: Fix handling of keys with dots in filter functions (#24393) 2024-09-14 06:52:31 +10:00
nopunin10did
ae4ab5ed31 [Keyboard] Styrka Atmel Custom PCB (#24380)
* Workaround for broken ChibiOS startup (#23822)

* Add personal keymap JSON

* Delete viktus_styrka_nopunin10did_20240529.json

* Add custom Styrka Atmel firmware

* Styrka Atmel fixes to compile and readme

* Remove VIA keymap

* Remove user keymap and edit readme

---------

Co-authored-by: Joel Challis <git@zvecr.com>
2024-09-12 22:58:02 -06:00
QMK Bot
ccae6e596a Merge remote-tracking branch 'origin/master' into develop 2024-09-12 17:31:02 +00:00
Ryan
0c19eae916 4pplet/waffling80/rev_b_ansi: fix missing keyboard.json (#24390) 2024-09-12 18:30:28 +01:00
QMK Bot
12dae4b9b7 Merge remote-tracking branch 'origin/master' into develop 2024-09-11 05:44:07 +00:00
nonameCCC
b7729fa019 [Keyboard] Add Support for PH-AC Rhythm Game Controller (#24368)
* [Keyboard] Add PHDesign PH-AC Rhythm Game Contoller

Co-authored by alt-0191

* Detail Improvement

* Update keyboard.json

* Update readme.md

* Update readme.md

* Created Encoder Matrix

* Posted Images

* Suggested Changes

* Update keyboard.json

* Update readme.md

* Update keyboard.json

* Update readme.md
2024-09-10 23:43:36 -06:00
Dasky
2c7bf34d09 Allow for inverted SPI CS logic (#23699) 2024-09-10 08:44:35 +10:00
QMK Bot
3aaa086ac8 Merge remote-tracking branch 'origin/master' into develop 2024-09-08 18:20:09 +00:00
Cipulot
e0788d19d4 Update EC60X LED count (#24374)
Update keyboard.json
2024-09-08 12:19:39 -06:00
QMK Bot
a4c286bb34 Merge remote-tracking branch 'origin/master' into develop 2024-09-06 16:31:28 +00:00
jack
f043545144 [Docs] Remove references to bootmagic lite (#24369) 2024-09-06 17:30:54 +01:00
QMK Bot
46d2e15b1f Merge remote-tracking branch 'origin/master' into develop 2024-09-06 15:00:21 +00:00
Duncan Sutherland
c44f5375ab Correct 2u backspace matrix co-ordinate for Fave65s (#24353) 2024-09-06 07:59:39 -07:00
QMK Bot
4691b72bd5 Merge remote-tracking branch 'origin/master' into develop 2024-09-06 14:42:53 +00:00
jack
6d4f8d8963 [Keyboard] Add Klor (#24302) 2024-09-06 07:42:22 -07:00
QMK Bot
a42652f8e7 Merge remote-tracking branch 'origin/master' into develop 2024-09-06 06:35:56 +00:00
4pplet
75848477fb Add waffling80 hotswap PCB (#23551)
Co-authored-by: jack <0x6a73@protonmail.com>
2024-09-05 23:35:26 -07:00
Filios92
0fd9909657 Add combo key repress feature (#22858)
Co-authored-by: jack <jack@pngu.org>
2024-09-05 23:27:20 -07:00
Mega Mind
b5c807fb4a Refactor F4 ld files to use common files (#18059) 2024-09-05 23:24:14 -07:00
QMK Bot
6af8d4210c Merge remote-tracking branch 'origin/master' into develop 2024-09-05 22:47:01 +00:00
Ryan
4a6ba1e808 Fix RGBW for WS2812 SPI driver (#24367) 2024-09-05 23:46:29 +01:00
QMK Bot
59ac1a08c8 Merge remote-tracking branch 'origin/master' into develop 2024-09-05 21:28:06 +00:00
Perry Wang
e83a36dfbf Fixes renaming typo of uno/rev2 json back to keyboard.json (#24366)
Rename keyboard.jsono to keyboard.json
2024-09-06 07:27:35 +10:00
Ryan
c3632dce99 Remove 60_tsangan_hhkb community layout (#24355) 2024-09-05 15:21:45 +10:00
QMK Bot
deb1dcf6c7 Merge remote-tracking branch 'origin/master' into develop 2024-09-04 02:57:49 +00:00
dependabot[bot]
2b55e43e54 Bump peter-evans/create-pull-request from 6 to 7 (#24361)
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 6 to 7.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v6...v7)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  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-09-04 03:57:19 +01:00
QMK Bot
a7ed82b39b Merge remote-tracking branch 'origin/master' into develop 2024-09-02 19:46:32 +00:00
dependabot[bot]
ef3a939880 Bump JamesIves/github-pages-deploy-action from 4.6.3 to 4.6.4 (#24358)
Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.3 to 4.6.4.
- [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases)
- [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.3...v4.6.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-02 20:46:02 +01:00
Joel Challis
3bd303f204 Remove arm_atsam platform (#24337) 2024-09-02 03:48:17 +01:00
QMK Bot
096aca63c5 Merge remote-tracking branch 'origin/master' into develop 2024-09-01 23:13:58 +00:00
Ryan
28b6a8841f Add 60_ansi_tsangan_split_bs_rshift to community layouts (#24186) 2024-09-02 09:13:28 +10:00
Stefan Kerkmann
d210590d4d [Maintenance] builddefs: common_rules: overhaul debug information generation (#24352)
builddefs: common_rules: overhaul debug information generation

Debug information is always generated while compiling a binary, but
debugging is not the main use-case for the majority of users. Thus the
new default is to explicitly require them with `DEBUG_ENABLE=yes`. The
same is true for linker map files which are gated by the same flag.

As we target the gcc compiler and debug with the gdb debugger we can
specify the ggdb3 flag in the most verbose to get macro expansion.

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
2024-09-01 19:54:53 +02:00
QMK Bot
07535aa2c0 Merge remote-tracking branch 'origin/master' into develop 2024-09-01 16:59:52 +00:00
Stefan Otte
884a808813 doc: "docker getting started" mentions flash limitations (#24336)
* doc: "docker getting started" mentions `flash` limitations

Mass storage bootloader don't work with `flash` target.

* Update docs/getting_started_docker.md

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

---------

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2024-09-01 10:59:21 -06:00
Stefan Kerkmann
784786c00c [Core] util: uf2families: sync with upstream (#24351)
util: uf2families: sync with upstream

The upstream revision is:
5b9299df61/utils/uf2families.json

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
2024-09-01 15:57:41 +01:00
QMK Bot
9985f5950d Merge remote-tracking branch 'origin/master' into develop 2024-09-01 03:47:16 +00:00
Duncan Sutherland
fba0408cb3 Add matrix diagram for EC 60X (#24045)
* add matrix_diagram.md

* Update matrix_diagram.md

* Update matrix_diagram.md

* Update matrix_diagram.md

* unix line endings
2024-08-31 21:46:47 -06:00
Thomas Weißschuh
9df36b25da Remove global k_rgb_matrix_split (#24348)
All users have their own local definition.
2024-08-31 21:45:49 -06:00
QMK Bot
481e6f6440 Merge remote-tracking branch 'origin/master' into develop 2024-08-31 03:49:41 +00:00
Joe Scotto
16a811604b [Keyboard] Add ScottoHazard (#24181)
* Add ScottoHazard

* Update to proper layout

* Add header license

* Update keyboards/handwired/scottokeebs/scottohazard/config.h

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

* Update keyboards/handwired/scottokeebs/scottohazard/keyboard.json

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

* Delete keyboards/handwired/scottokeebs/scottohazard/rules.mk

---------

Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-08-30 21:46:38 -06:00
QMK Bot
81109100a9 Merge remote-tracking branch 'origin/master' into develop 2024-08-31 03:44:35 +00:00
Armin Anderson
d7e1eb3e48 [Docs] Update joystick.md (#23928)
Explicit note about compatibility with ARM boards and the ADC driver
2024-08-30 21:44:03 -06:00
Duncan Sutherland
dae5e9ee06 Cutie Club Fidelity Layout Additions (#23838)
* expand layout selection for fidelity

* remove VIA

* format-json
2024-08-30 17:10:28 -06:00
QMK Bot
99e491f8b5 Merge remote-tracking branch 'origin/master' into develop 2024-08-30 02:57:36 +00:00
fenggx-a-jazz
0da9bd2709 Add a-jazz akc084 keyboard (#24224)
Co-authored-by: jack <jack@pngu.org>
2024-08-29 19:57:06 -07:00
QMK Bot
0b6b4c23d2 Merge remote-tracking branch 'origin/master' into develop 2024-08-30 02:22:23 +00:00
jack
d4811c19b0 Fix wrong OLED code for a few keyboards (#24344)
* Initial

* Other keyboards too
2024-08-29 20:21:53 -06:00
QMK Bot
6644f41e91 Merge remote-tracking branch 'origin/master' into develop 2024-08-30 02:20:35 +00:00
Ryan
496f448090 Fix two firmware size warnings (#24343) 2024-08-29 20:20:05 -06:00
QMK Bot
141214122d Merge remote-tracking branch 'origin/master' into develop 2024-08-30 01:56:58 +00:00
Antoine Bertin
d95690d89c [Keyboard] Fix splitkb/corne OLED code (#24260) 2024-08-29 19:56:25 -06:00
QMK Bot
425a4b7c57 Merge remote-tracking branch 'origin/master' into develop 2024-08-28 14:53:11 +00:00
leyew
fd65bd5ae0 [Keyboard] Add Acid and Co. Stellaron TKL (#24154) 2024-08-28 15:52:02 +01:00
QMK Bot
a5d4ed98fd Merge remote-tracking branch 'origin/master' into develop 2024-08-28 14:39:11 +00:00
Thanh Son Tran
4b1f916b99 [Keyboard] Add Tyson60s keyboard (#24047) 2024-08-28 15:38:37 +01:00
Nick Brassel
60308a2c0f These should really have been 0.0.6. 2024-08-27 10:55:32 +10:00
Nick Brassel
70cbf08b67 Add new connection keycodes for Bluetooth, 2.4GHz. (#24251) 2024-08-27 10:52:23 +10:00
QMK Bot
ecf725b356 Merge remote-tracking branch 'origin/master' into develop 2024-08-26 22:06:15 +00:00
Nick Brassel
0f43486537 Changelog update with actual qmk_userspace_via link. (#24332) 2024-08-26 23:05:45 +01:00
QMK Bot
4b7de2ba5d Merge remote-tracking branch 'origin/master' into develop 2024-08-26 21:28:57 +00:00
Joel Challis
530e044762 Update PR Checklist for 'via' keymaps (#24330) 2024-08-27 07:28:23 +10:00
Colin Kinloch
cc3bc2af11 Add ability to poweroff ADNS5050 sensor (#24223)
* Add ability to poweroff ADNS5050 sensor

* ploopyco/trackball_nano: Poweroff ADNS5050 on suspend
2024-08-26 14:06:53 -06:00
QMK Bot
df5800b6c4 Merge remote-tracking branch 'origin/master' into develop 2024-08-26 11:59:18 +00:00
zlabkeeb
8b42e5fb8f [Keyboard] Add Macropad VRYNBOARD (#23931)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: ZahraNetMe <vericheri@gmail.com>
2024-08-26 21:58:48 +10:00
QMK Bot
474cc01d68 Merge remote-tracking branch 'origin/master' into develop 2024-08-26 05:14:37 +00:00
Ryan
c134822486 Update next breaking changes date (#24331) 2024-08-26 15:14:06 +10:00
QMK Bot
b481e7a8f0 Merge remote-tracking branch 'origin/master' into develop 2024-08-26 03:35:14 +00:00
MrMustardTBC
63206aebcf fixed spelling errors in example 4 (#24318) 2024-08-26 04:34:42 +01:00
QMK Bot
d5c98d0539 Merge remote-tracking branch 'origin/master' into develop 2024-08-26 03:34:10 +00:00
Joel Challis
c05cafa3df Add via keymaps to gitignore (#24329) 2024-08-26 04:33:40 +01:00
QMK Bot
0c43a15ce6 Merge remote-tracking branch 'origin/master' into develop 2024-08-26 02:56:51 +00:00
Joel Challis
7a4f21d340 Reject via keymaps in lint (#24325) 2024-08-26 03:56:03 +01:00
フィルターペーパー
11f2209087 Segregrate keycode at pre-process record quantum (#24194) 2024-08-26 10:20:30 +10:00
Nick Brassel
656fea4dab Branch point for 2024q4 breaking change 2024-08-26 10:04:37 +10:00
Nick Brassel
170ed7ba9b Merge branch 'master' into develop 2024-08-26 10:04:02 +10:00
Nick Brassel
5d76c5280d Merge branch 'develop' 2024-08-26 10:01:57 +10:00
Nick Brassel
81dcf2b547 Merge point for 2024q3 breaking change -- take 2 2024-08-26 10:00:11 +10:00
Nick Brassel
5741eb7b10 Fixup python tests for missing via keymaps. 2024-08-26 09:57:35 +10:00
Nick Brassel
9976d0f547 Merge point for 2024q3 breaking change 2024-08-26 09:49:08 +10:00
Nick Brassel
acac787842 2024q3 breaking changes changelog (#24324)
Co-authored-by: Joel Challis <git@zvecr.com>
2024-08-26 09:46:12 +10:00
Nick Brassel
45dc2499dc Remove all via-enabled keymaps, including via. (#24322) 2024-08-26 07:51:22 +10:00
Ryan
8f6d2ac53c Update Underglow keycodes (#23765)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2024-08-25 22:15:07 +10:00
Nebuleon
fc9d848a77 Fix build failure on zsa/moonlander with DYNAMIC_MACRO_ENABLE (#24316) 2024-08-24 14:10:48 +01:00
QMK Bot
b3bb19a96d Merge remote-tracking branch 'origin/master' into develop 2024-08-21 21:56:55 +00:00
dependabot[bot]
e6a898e3ee Bump tj-actions/changed-files from 44 to 45 (#24313)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 44 to 45.
- [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/v44...v45)

---
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-08-21 22:56:22 +01:00
QMK Bot
048f2ddcbf Merge remote-tracking branch 'origin/master' into develop 2024-08-21 14:16:01 +00:00
Danny
373364afd1 Add Quefrency Rev. 6 (#24291)
* Initial commit of Quefrency Rev. 6

* Use more memory for storing VIA layout options

* Add missing underglow LED

* Set bootmagic keys for each half, split transport matrix for RGB, update pinout for right half

* Enable encoders

* Add/update license headers

* Remove fudge thing

* Remove EEPROM leveling specification now that is the default

* Fix bootmagic position for right half
2024-08-21 10:15:06 -04:00
QMK Bot
31b962b339 Merge remote-tracking branch 'origin/master' into develop 2024-08-19 19:05:10 +00:00
Joel Challis
557e4e7ffc Fix dead link in porting_your_keyboard_to_qmk.md (#24306) 2024-08-19 20:04:37 +01:00
QMK Bot
97a0091bbb Merge remote-tracking branch 'origin/master' into develop 2024-08-19 18:08:45 +00:00
Joel Challis
e910c89e0b Fix auto 'keyboard' label (#24221) 2024-08-19 19:08:11 +01:00
フィルターペーパー
21b84596e7 Enhance overlapping mouse keys control (#23341)
Enhance the overlapping mouse key press acceleration (introduced in #21494) with user preprocessor controls.
2024-08-19 03:18:28 +01:00
Drashna Jaelre
e9cb9f42a5 [Keyboard] Update ZSA Moonlander (#23911) 2024-08-19 01:13:38 +01:00
QMK Bot
48d3edd66f Merge remote-tracking branch 'origin/master' into develop 2024-08-18 21:33:42 +00:00
Joel Challis
1355eb493f Default STM32G431 back to wear_leveling EFL driver (#24299) 2024-08-19 07:33:11 +10:00
Drashna Jaelre
ab4c13e835 Add dynamic macro keyboard callbacks (#24142) 2024-08-18 01:35:10 +01:00
QMK Bot
faf51c7449 Merge remote-tracking branch 'origin/master' into develop 2024-08-17 20:41:16 +00:00
marksard
072947e573 Remove like_jis keymap. (#24292) 2024-08-17 21:40:45 +01:00
QMK Bot
8db800bfba Merge remote-tracking branch 'origin/master' into develop 2024-08-15 14:22:39 +00:00
Wilfried JEANNIARD
fe50774cb4 [Keyboard] Add/Update Pimoroni keybow 2040 (#23986)
* [Keyboard] Add pimoroni/keybow2040

* [Keyboard] Update pimoroni/keybow2040

Co-Authored-By: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-Authored-By: Joel Challis <git@zvecr.com>
Co-Authored-By: Sandy Macdonald <1325593+sandyjmacdonald@users.noreply.github.com>

---------

Co-authored-by: Tony Finch <dot@dotat.at>
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Sandy Macdonald <1325593+sandyjmacdonald@users.noreply.github.com>
2024-08-15 15:22:07 +01:00
QMK Bot
5f8aaf236f Merge remote-tracking branch 'origin/master' into develop 2024-08-15 13:37:59 +00:00
Joel Challis
39324e642f Update Discord URL (#24283) 2024-08-15 14:37:27 +01:00
QMK Bot
1f02cd45af Merge remote-tracking branch 'origin/master' into develop 2024-08-15 11:11:07 +00:00
Ryan
b07a68230d Fix version check in Fedora install script to be >= 39 (#24281) 2024-08-15 12:10:35 +01:00
Drashna Jaelre
2d2eed9594 [Keyboard] Move Planck EZ to ZSA vendor folder (#23917) 2024-08-14 14:27:37 +01:00
フィルターペーパー
822a4580f4 Refactor starlight RGB matrix effects (#24202)
* Use unsigned integers
* Use lib8tion random8 function
* Test for valid LED flags
* Use rgb_matrix_hsv_to_rgb function
2024-08-14 00:55:00 +01:00
フィルターペーパー
91f293d0c7 Refactor riverflow RGB matrix loop (#24203)
Check for LED flags at the start of loop to skip early
2024-08-14 00:54:01 +01:00
Izumemori
40f2575b56 Fix NKRO and Mouse Emulation on arm_atsam (#23945) 2024-08-13 09:06:24 +10:00
QMK Bot
45397a44e3 Merge remote-tracking branch 'origin/master' into develop 2024-08-12 13:26:02 +00:00
Nick Brassel
dccada95aa Remove debugging prints. (#24271) 2024-08-12 23:25:29 +10:00
QMK Bot
2c6409fdd8 Merge remote-tracking branch 'origin/master' into develop 2024-08-12 12:34:54 +00:00
Nick Brassel
380e0c9cad Userspace: add support for adding environment variables during build (#22887) 2024-08-12 22:34:22 +10:00
Joel Challis
783f97ff32 Remove handling of keyboard level keymap templates (#24234) 2024-08-12 22:29:05 +10:00
QMK Bot
ca6ba30a72 Merge remote-tracking branch 'origin/master' into develop 2024-08-12 10:36:29 +00:00
Nick Brassel
158aaef78c ChibiOS update script updates. (#24267) 2024-08-12 20:35:56 +10:00
Joel Challis
019b6f67b2 Remove keyboard level QK_BOOT implementations (#24231) 2024-08-10 13:50:36 +01:00
jack
339b820520 Fixup handwired/dactyl_minidox (#24253)
* Initial

* Fix missing bracket

* Fix keymap name

* Fix rgb matrix coordinates

* Remove unncessary centre point
2024-08-07 21:48:44 -06:00
QMK Bot
fc209e1c51 Merge remote-tracking branch 'origin/master' into develop 2024-08-07 20:44:32 +00:00
Andrew Kannan
5acc3b2b7b Add extra compatibility to Sat75 HS PCB (#24156) 2024-08-07 14:40:31 -06:00
QMK Bot
c0e2ecb825 Merge remote-tracking branch 'origin/master' into develop 2024-08-07 20:38:19 +00:00
stephen776
78900720fd JJ50 v2 Support (#24212)
* add support for JJ50 V2 PCB

* fix bootloader config

* update mousekey setting

* run format-json

---------

Co-authored-by: Steve Jacobs <sjacobs@truefit.io>
2024-08-07 14:34:21 -06:00
QMK Bot
142128740d Merge remote-tracking branch 'origin/master' into develop 2024-08-07 20:29:11 +00:00
Sắn
c67c3d375b Add support for bunnygirl65 (#24244)
* Add support for bunnygirl65

* Update keyboard.json

* Update keymap.c

* Update keymap.c

* Update keyboards/sawnsprojects/bunnygirl65/readme.md

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

* Update keyboards/sawnsprojects/bunnygirl65/keyboard.json

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

* Update keyboards/sawnsprojects/bunnygirl65/keyboard.json

---------

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: jack <jack@pngu.org>
2024-08-07 14:28:41 -06:00
Joel Challis
ac1b488170 Refactor printedpad (#24236) 2024-08-04 20:34:57 +01:00
Joel Challis
b5b4e93857 Refactor orthocode (#24237) 2024-08-04 15:14:30 +01:00
Ryan
1f942bb17e Small tweaks to keymap generation (#24240) 2024-08-04 12:28:40 +01:00
Nick Brassel
5c10bd3d8c Fixup changelog entry path. 2024-08-04 11:44:24 +10:00
Joel Challis
0fbe150303 Remove unnecessary RGB Matrix shutdown hooks (#24238) 2024-08-04 02:07:02 +01:00
Ryan
0b4065b50c hs60/v1: separate into ANSI and ISO revisions (#24136) 2024-08-04 02:03:54 +01:00
QMK Bot
b04fee4ff7 Merge remote-tracking branch 'origin/master' into develop 2024-08-03 23:48:33 +00:00
eason
75402109e9 Add Void65h (#24183) 2024-08-04 00:46:12 +01:00
QMK Bot
ddc60da839 Merge remote-tracking branch 'origin/master' into develop 2024-08-03 23:38:27 +00:00
Ryan
fa657fef70 atlantis/ak81_ve: move RGB Matrix LED config to data driven (#24115) 2024-08-04 00:38:26 +01:00
Ryan
eb78ca1c1a handwired/p65rgb: move RGB Matrix LED config to data driven (#24124) 2024-08-04 00:37:57 +01:00
QMK Bot
bb20093b24 Merge remote-tracking branch 'origin/master' into develop 2024-08-03 22:17:52 +00:00
Christian Greene
d28a50e176 FX19 Support (#24220) 2024-08-03 23:11:49 +01:00
Joel Challis
8808fffc2f Refactor opendeck/32 (#24233) 2024-08-03 23:10:09 +01:00
Ryan
9f387f525c Remove handwired/pytest/has_template (#24232) 2024-08-03 16:55:02 +01:00
QMK Bot
807ba71c89 Merge remote-tracking branch 'origin/master' into develop 2024-07-31 00:08:24 +00:00
akyp
c7662e4f36 [Keyboard] Add archerkeyboard/desire65 (#23776)
Co-authored-by: jack <0x6a73@protonmail.com>
2024-07-31 10:07:51 +10:00
QMK Bot
5439507f5e Merge remote-tracking branch 'origin/master' into develop 2024-07-30 21:22:14 +00:00
Cipulot
73cb6fd89f cipulot/ec_60x: Fix VIA layout options (#24217)
This fixes the issue of one layout option not being applied correctly because it was out of bound.
2024-07-30 22:21:42 +01:00
Nick Brassel
8ca082892a Eliminate use of #include "../default/keymap.c". (#24215) 2024-07-30 13:06:15 +10:00
QMK Bot
9c1e1d1fee Merge remote-tracking branch 'origin/master' into develop 2024-07-28 18:16:45 +00:00
Dasky
d538451adb Remove AVR GCC version warning (#24206) 2024-07-28 19:16:15 +01:00
8945 changed files with 83327 additions and 247374 deletions

View File

@@ -11,7 +11,8 @@ charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[{*.yaml,*.yml}] # To match GitHub Actions formatting
# To match GitHub Actions formatting
[*.{yaml,yml}]
indent_size = 2
[*.md]

View File

@@ -1,7 +1,7 @@
blank_issues_enabled: false
contact_links:
- name: QMK Discord
url: https://discord.gg/Uq7gcHh
url: https://discord.gg/qmk
about: Ask questions, discuss issues and features. Chill.
- name: OLKB Subreddit
url: https://www.reddit.com/r/olkb

View File

@@ -1,6 +1,5 @@
<!--- Provide a general summary of your changes in the title above. -->
<!--- This template is entirely optional and can be removed, but is here to help both you and us. -->
<!--- Anything on lines wrapped in comments like these will not show up in the final text. -->
## Description
@@ -15,7 +14,7 @@
- [ ] New feature
- [ ] Enhancement/optimization
- [ ] Keyboard (addition or update)
- [ ] Keymap/layout/userspace (addition or update)
- [ ] Keymap/layout (addition or update)
- [ ] Documentation
## Issues Fixed or Closed by This PR

20
.github/labeler.yml vendored
View File

@@ -11,15 +11,15 @@ core:
- Makefile
- '*.mk'
dependencies:
- all:
- changed-files:
- any-glob-to-any-file: lib/**
- all-globs-to-all-files: '!lib/python/**'
- changed-files:
- all-globs-to-any-file:
- lib/**
- '!lib/python/**'
keyboard:
- all:
- changed-files:
- any-glob-to-any-file: keyboards/**
- all-globs-to-all-files: '!keyboards/**/keymaps/**'
- changed-files:
- all-globs-to-any-file:
- keyboards/**
- '!keyboards/**/keymaps/**'
keymap:
- changed-files:
- any-glob-to-any-file:
@@ -54,3 +54,7 @@ dd:
- data/constants/**
- data/mappings/**
- data/schemas/**
community_module:
- changed-files:
- any-glob-to-any-file:
- modules/**

View File

@@ -15,6 +15,7 @@ on:
- quantum/**/*
- tests/**/*
- tmk_core/**/*
- lib/python/**/*
- util/**/*
- Makefile
- '*.mk'

View File

@@ -56,7 +56,7 @@ jobs:
- name: Deploy
if: ${{ github.event_name == 'push' && github.repository == 'qmk/qmk_firmware' }}
uses: JamesIves/github-pages-deploy-action@v4.6.3
uses: JamesIves/github-pages-deploy-action@v4.7.3
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: gh-pages

View File

@@ -10,6 +10,7 @@ on:
- 'lib/arm_atsam/**'
- 'lib/lib8tion/**'
- 'lib/python/**'
- 'modules/**'
- 'platforms/**'
- 'quantum/**'
- 'tests/**'
@@ -35,7 +36,7 @@ jobs:
- name: Get changed files
id: file_changes
uses: tj-actions/changed-files@v44
uses: tj-actions/changed-files@v46
with:
use_rest_api: true

View File

@@ -47,7 +47,7 @@ jobs:
git config user.email 'hello@qmk.fm'
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
uses: peter-evans/create-pull-request@v7
if: ${{ github.repository == 'qmk/qmk_firmware'}}
with:
token: ${{ secrets.QMK_BOT_TOKEN }}

View File

@@ -27,7 +27,7 @@ jobs:
- name: Get changed files
id: file_changes
uses: tj-actions/changed-files@v44
uses: tj-actions/changed-files@v46
with:
use_rest_api: true

View File

@@ -34,7 +34,7 @@ jobs:
git config user.email 'hello@qmk.fm'
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
uses: peter-evans/create-pull-request@v7
if: ${{ github.repository == 'qmk/qmk_firmware'}}
with:
token: ${{ secrets.QMK_BOT_TOKEN }}

View File

@@ -45,7 +45,7 @@ jobs:
stale-pr-label: stale
days-before-pr-stale: 45
days-before-pr-close: 30
exempt-pr-labels: bug,awaiting review,breaking_change,in progress,on hold
exempt-pr-labels: bug,awaiting review,breaking_change,in progress,on hold,needs-core-wireless,crippled-firmware
stale-pr-message: >
Thank you for your contribution!

1
.gitignore vendored
View File

@@ -118,4 +118,5 @@ compile_commands.json
# VIA(L) files that don't belong in QMK repo
via*.json
/keyboards/**/keymaps/via/*
/keyboards/**/keymaps/vial/*

View File

@@ -145,7 +145,7 @@ FILE_PATTERNS = *.c \
RECURSIVE = YES
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS = */protocol/arm_atsam/*
EXCLUDE_PATTERNS =
EXCLUDE_SYMBOLS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS = *

View File

@@ -113,6 +113,29 @@ endef
# Make it easier to call TRY_TO_MATCH_RULE_FROM_LIST
TRY_TO_MATCH_RULE_FROM_LIST = $(eval $(call TRY_TO_MATCH_RULE_FROM_LIST_HELPER,$1))$(RULE_FOUND)
# As TRY_TO_MATCH_RULE_FROM_LIST_HELPER, but with additional
# resolution of DEFAULT_FOLDER and keyboard_aliases.hjson for provided rule
define TRY_TO_MATCH_RULE_FROM_LIST_HELPER_KB
# Split on ":", padding with empty strings to avoid indexing issues
TOKEN1:=$$(shell python3 -c "import sys; print((sys.argv[1].split(':',1)+[''])[0])" $$(RULE))
TOKENr:=$$(shell python3 -c "import sys; print((sys.argv[1].split(':',1)+[''])[1])" $$(RULE))
TOKEN1:=$$(shell $(QMK_BIN) resolve-alias --allow-unknown $$(TOKEN1))
FOUNDx:=$$(shell echo $1 | tr " " "\n" | grep -Fx $$(TOKEN1))
ifneq ($$(FOUNDx),)
RULE := $$(TOKENr)
RULE_FOUND := true
MATCHED_ITEM := $$(TOKEN1)
else
RULE_FOUND := false
MATCHED_ITEM :=
endif
endef
# Make it easier to call TRY_TO_MATCH_RULE_FROM_LIST_KB
TRY_TO_MATCH_RULE_FROM_LIST_KB = $(eval $(call TRY_TO_MATCH_RULE_FROM_LIST_HELPER_KB,$1))$(RULE_FOUND)
define ALL_IN_LIST_LOOP
OLD_RULE$1 := $$(RULE)
$$(eval $$(call $1,$$(ITEM$1)))
@@ -138,7 +161,7 @@ define PARSE_RULE
$$(eval $$(call PARSE_TEST))
# If the rule starts with the name of a known keyboard, then continue
# the parsing from PARSE_KEYBOARD
else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(shell $(QMK_BIN) list-keyboards --no-resolve-defaults)),true)
else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST_KB,$$(shell $(QMK_BIN) list-keyboards)),true)
KEYBOARD_RULE=$$(MATCHED_ITEM)
$$(eval $$(call PARSE_KEYBOARD,$$(MATCHED_ITEM)))
else
@@ -170,17 +193,6 @@ define PARSE_KEYBOARD
# include the correct makefile to determine the actual name of it
CURRENT_KB := $1
# KEYBOARD_FOLDERS := $$(subst /, , $(CURRENT_KB))
DEFAULT_FOLDER := $$(CURRENT_KB)
# We assume that every rules.mk will contain the full default value
$$(eval include $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/rules.mk)
ifneq ($$(DEFAULT_FOLDER),$$(CURRENT_KB))
$$(eval include $(ROOT_DIR)/keyboards/$$(DEFAULT_FOLDER)/rules.mk)
endif
CURRENT_KB := $$(DEFAULT_FOLDER)
# 5/4/3/2/1
KEYBOARD_FOLDER_PATH_1 := $$(CURRENT_KB)
KEYBOARD_FOLDER_PATH_2 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_1)))

View File

@@ -21,8 +21,10 @@ $(TEST_OUTPUT)_SRC := \
$(SRC) \
$(QUANTUM_PATH)/keymap_introspection.c \
tests/test_common/matrix.c \
tests/test_common/pointing_device_driver.c \
tests/test_common/test_driver.cpp \
tests/test_common/keyboard_report_util.cpp \
tests/test_common/mouse_report_util.cpp \
tests/test_common/keycode_util.cpp \
tests/test_common/keycode_table.cpp \
tests/test_common/test_fixture.cpp \

View File

@@ -34,10 +34,13 @@ ifeq ($(strip $(DUMP_CI_METADATA)),yes)
endif
# Force expansion
TARGET := $(TARGET)
override TARGET := $(TARGET)
ifneq ($(FORCE_LAYOUT),)
TARGET := $(TARGET)_$(FORCE_LAYOUT)
override TARGET := $(TARGET)_$(FORCE_LAYOUT)
endif
ifneq ($(CONVERT_TO),)
override TARGET := $(TARGET)_$(CONVERT_TO)
endif
# Object files and generated keymap directory
@@ -58,9 +61,6 @@ ifdef SKIP_GIT
VERSION_H_FLAGS += --skip-git
endif
# Generate the board's version.h file.
$(shell $(QMK_BIN) generate-version-h $(VERSION_H_FLAGS) -q -o $(INTERMEDIATE_OUTPUT)/src/version.h)
# Determine which subfolders exist.
KEYBOARD_FOLDER_PATH_1 := $(KEYBOARD)
KEYBOARD_FOLDER_PATH_2 := $(patsubst %/,%,$(dir $(KEYBOARD_FOLDER_PATH_1)))
@@ -112,6 +112,39 @@ endif
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/rules.mk)","")
include $(KEYBOARD_PATH_1)/rules.mk
endif
# Create dependencies on DD keyboard config - structure validated elsewhere
DD_CONFIG_FILES :=
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/info.json)","")
DD_CONFIG_FILES += $(KEYBOARD_PATH_1)/info.json
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_2)/info.json)","")
DD_CONFIG_FILES += $(KEYBOARD_PATH_2)/info.json
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_3)/info.json)","")
DD_CONFIG_FILES += $(KEYBOARD_PATH_3)/info.json
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_4)/info.json)","")
DD_CONFIG_FILES += $(KEYBOARD_PATH_4)/info.json
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/info.json)","")
DD_CONFIG_FILES += $(KEYBOARD_PATH_5)/info.json
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/keyboard.json)","")
DD_CONFIG_FILES += $(KEYBOARD_PATH_1)/keyboard.json
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_2)/keyboard.json)","")
DD_CONFIG_FILES += $(KEYBOARD_PATH_2)/keyboard.json
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_3)/keyboard.json)","")
DD_CONFIG_FILES += $(KEYBOARD_PATH_3)/keyboard.json
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_4)/keyboard.json)","")
DD_CONFIG_FILES += $(KEYBOARD_PATH_4)/keyboard.json
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/keyboard.json)","")
DD_CONFIG_FILES += $(KEYBOARD_PATH_5)/keyboard.json
endif
MAIN_KEYMAP_PATH_1 := $(KEYBOARD_PATH_1)/keymaps/$(KEYMAP)
MAIN_KEYMAP_PATH_2 := $(KEYBOARD_PATH_2)/keymaps/$(KEYMAP)
@@ -186,7 +219,10 @@ 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.)
# Allow a separately-found keymap.c next to keymap.json -- the keymap.c
# generator will include the other keymap.c in the process, if supplied.
OTHER_KEYMAP_C := $(KEYMAP_C)
OPT_DEFS += -DOTHER_KEYMAP_C=\"$(OTHER_KEYMAP_C)\"
endif
KEYMAP_PATH := $(KEYMAP_JSON_PATH)
@@ -194,25 +230,27 @@ ifneq ("$(wildcard $(KEYMAP_JSON))", "")
KEYMAP_C := $(INTERMEDIATE_OUTPUT)/src/keymap.c
KEYMAP_H := $(INTERMEDIATE_OUTPUT)/src/config.h
# Load the keymap-level rules.mk if exists
-include $(KEYMAP_PATH)/rules.mk
ifeq ($(OTHER_KEYMAP_C),)
# Load the keymap-level rules.mk if exists (and we havent already loaded it for keymap.c)
-include $(KEYMAP_PATH)/rules.mk
endif
# Load any rules.mk content from keymap.json
INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --output $(INTERMEDIATE_OUTPUT)/src/rules.mk $(KEYMAP_JSON))
include $(INFO_RULES_MK)
# Add rules to generate the keymap files - indentation here is important
$(INTERMEDIATE_OUTPUT)/src/keymap.c: $(KEYMAP_JSON)
$(INTERMEDIATE_OUTPUT)/src/keymap.c: $(KEYMAP_JSON) $(DD_CONFIG_FILES)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) json2c --quiet --output $(KEYMAP_C) $(KEYMAP_JSON))
@$(BUILD_CMD)
$(INTERMEDIATE_OUTPUT)/src/config.h: $(KEYMAP_JSON)
$(INTERMEDIATE_OUTPUT)/src/config.h: $(KEYMAP_JSON) $(DD_CONFIG_FILES)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-config-h --quiet --output $(KEYMAP_H) $(KEYMAP_JSON))
@$(BUILD_CMD)
$(INTERMEDIATE_OUTPUT)/src/keymap.h: $(KEYMAP_JSON)
$(INTERMEDIATE_OUTPUT)/src/keymap.h: $(KEYMAP_JSON) $(DD_CONFIG_FILES)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-keymap-h --quiet --output $(INTERMEDIATE_OUTPUT)/src/keymap.h $(KEYMAP_JSON))
@$(BUILD_CMD)
@@ -221,8 +259,37 @@ generated-files: $(INTERMEDIATE_OUTPUT)/src/config.h $(INTERMEDIATE_OUTPUT)/src/
endif
# Community modules
$(INTERMEDIATE_OUTPUT)/src/community_modules.h: $(KEYMAP_JSON) $(DD_CONFIG_FILES)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-community-modules-h -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/community_modules.h $(KEYMAP_JSON))
@$(BUILD_CMD)
$(INTERMEDIATE_OUTPUT)/src/community_modules.c: $(KEYMAP_JSON) $(DD_CONFIG_FILES)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-community-modules-c -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/community_modules.c $(KEYMAP_JSON))
@$(BUILD_CMD)
$(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.c: $(KEYMAP_JSON) $(DD_CONFIG_FILES)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-community-modules-introspection-c -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.c $(KEYMAP_JSON))
@$(BUILD_CMD)
$(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.h: $(KEYMAP_JSON) $(DD_CONFIG_FILES)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-community-modules-introspection-h -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.h $(KEYMAP_JSON))
@$(BUILD_CMD)
SRC += $(INTERMEDIATE_OUTPUT)/src/community_modules.c
generated-files: $(INTERMEDIATE_OUTPUT)/src/community_modules.h $(INTERMEDIATE_OUTPUT)/src/community_modules.c $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.c $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.h
include $(BUILDDEFS_PATH)/converters.mk
# Generate the board's version.h file.
$(shell $(QMK_BIN) generate-version-h $(VERSION_H_FLAGS) -q -o $(INTERMEDIATE_OUTPUT)/src/version.h)
MCU_ORIG := $(MCU)
include $(wildcard $(PLATFORM_PATH)/*/mcu_selection.mk)
@@ -307,6 +374,14 @@ endif
# Find all of the config.h files and add them to our CONFIG_H define.
CONFIG_H :=
define config_h_community_module_appender
ifneq ("$(wildcard $(1)/config.h)","")
CONFIG_H += $(1)/config.h
endif
endef
$(foreach module,$(COMMUNITY_MODULE_PATHS),$(eval $(call config_h_community_module_appender,$(module))))
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/config.h)","")
CONFIG_H += $(KEYBOARD_PATH_5)/config.h
endif
@@ -324,6 +399,14 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_1)/config.h)","")
endif
POST_CONFIG_H :=
define post_config_h_community_module_appender
ifneq ("$(wildcard $(1)/post_config.h)","")
POST_CONFIG_H += $(1)/post_config.h
endif
endef
$(foreach module,$(COMMUNITY_MODULE_PATHS),$(eval $(call post_config_h_community_module_appender,$(module))))
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/post_config.h)","")
POST_CONFIG_H += $(KEYBOARD_PATH_1)/post_config.h
endif
@@ -340,40 +423,6 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_5)/post_config.h)","")
POST_CONFIG_H += $(KEYBOARD_PATH_5)/post_config.h
endif
# Create dependencies on DD keyboard config - structure validated elsewhere
DD_CONFIG_FILES :=
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/info.json)","")
DD_CONFIG_FILES += $(KEYBOARD_PATH_1)/info.json
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_2)/info.json)","")
DD_CONFIG_FILES += $(KEYBOARD_PATH_2)/info.json
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_3)/info.json)","")
DD_CONFIG_FILES += $(KEYBOARD_PATH_3)/info.json
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_4)/info.json)","")
DD_CONFIG_FILES += $(KEYBOARD_PATH_4)/info.json
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/info.json)","")
DD_CONFIG_FILES += $(KEYBOARD_PATH_5)/info.json
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/keyboard.json)","")
DD_CONFIG_FILES += $(KEYBOARD_PATH_1)/keyboard.json
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_2)/keyboard.json)","")
DD_CONFIG_FILES += $(KEYBOARD_PATH_2)/keyboard.json
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_3)/keyboard.json)","")
DD_CONFIG_FILES += $(KEYBOARD_PATH_3)/keyboard.json
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_4)/keyboard.json)","")
DD_CONFIG_FILES += $(KEYBOARD_PATH_4)/keyboard.json
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/keyboard.json)","")
DD_CONFIG_FILES += $(KEYBOARD_PATH_5)/keyboard.json
endif
CONFIG_H += $(INTERMEDIATE_OUTPUT)/src/info_config.h
KEYBOARD_SRC += $(INTERMEDIATE_OUTPUT)/src/default_keyboard.c
@@ -454,6 +503,13 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_5)/post_rules.mk)","")
include $(KEYBOARD_PATH_5)/post_rules.mk
endif
define post_rules_mk_community_module_includer
ifneq ("$(wildcard $(1)/post_rules.mk)","")
include $(1)/post_rules.mk
endif
endef
$(foreach module,$(COMMUNITY_MODULE_PATHS),$(eval $(call post_rules_mk_community_module_includer,$(module))))
ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","")
CONFIG_H += $(KEYMAP_PATH)/config.h
endif

View File

@@ -28,6 +28,7 @@ QUANTUM_SRC += \
$(QUANTUM_DIR)/sync_timer.c \
$(QUANTUM_DIR)/logging/debug.c \
$(QUANTUM_DIR)/logging/sendchar.c \
$(QUANTUM_DIR)/process_keycode/process_default_layer.c \
VPATH += $(QUANTUM_DIR)/logging
# Fall back to lib/printf if there is no platform provided print
@@ -129,13 +130,13 @@ ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes)
MOUSE_ENABLE := yes
VPATH += $(QUANTUM_DIR)/pointing_device
SRC += $(QUANTUM_DIR)/pointing_device/pointing_device.c
SRC += $(QUANTUM_DIR)/pointing_device/pointing_device_drivers.c
SRC += $(QUANTUM_DIR)/pointing_device/pointing_device_auto_mouse.c
ifneq ($(strip $(POINTING_DEVICE_DRIVER)), custom)
SRC += drivers/sensors/$(strip $(POINTING_DEVICE_DRIVER)).c
OPT_DEFS += -DPOINTING_DEVICE_DRIVER_$(strip $(shell echo $(POINTING_DEVICE_DRIVER) | tr '[:lower:]' '[:upper:]'))
endif
OPT_DEFS += -DPOINTING_DEVICE_DRIVER_$(strip $(POINTING_DEVICE_DRIVER))
OPT_DEFS += -DPOINTING_DEVICE_DRIVER_NAME=$(strip $(POINTING_DEVICE_DRIVER))
ifeq ($(strip $(POINTING_DEVICE_DRIVER)), adns9800)
SPI_DRIVER_REQUIRED = yes
else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), analog_joystick)
@@ -215,7 +216,7 @@ else
COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash
COMMON_VPATH += $(DRIVER_PATH)/flash
SRC += eeprom_driver.c eeprom_legacy_emulated_flash.c legacy_flash_ops.c
else ifneq ($(filter $(MCU_SERIES),STM32F1xx STM32F3xx STM32F4xx STM32L4xx STM32G4xx WB32F3G71xx WB32FQ95xx GD32VF103),)
else ifneq ($(filter $(MCU_SERIES),STM32F1xx STM32F3xx STM32F4xx STM32L4xx STM32G4xx WB32F3G71xx WB32FQ95xx AT32F415 GD32VF103),)
# Wear-leveling EEPROM implementation, backed by MCU flash
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING
SRC += eeprom_driver.c eeprom_wear_leveling.c
@@ -238,10 +239,6 @@ else
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT
SRC += eeprom_driver.c eeprom_transient.c
endif
else ifeq ($(PLATFORM),ARM_ATSAM)
# arm_atsam EEPROM
OPT_DEFS += -DEEPROM_SAMD
SRC += eeprom_samd.c
else ifeq ($(PLATFORM),TEST)
# Test harness "EEPROM"
OPT_DEFS += -DEEPROM_TEST_HARNESS
@@ -310,11 +307,11 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
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)/process_keycode/process_underglow.c
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
ifeq ($(strip $(RGBLIGHT_DRIVER)), ws2812)
@@ -436,6 +433,13 @@ ifeq ($(strip $(LED_MATRIX_ENABLE)), yes)
SRC += snled27351-mono.c
endif
ifeq ($(strip $(LED_MATRIX_CUSTOM_KB)), yes)
OPT_DEFS += -DLED_MATRIX_CUSTOM_KB
endif
ifeq ($(strip $(LED_MATRIX_CUSTOM_USER)), yes)
OPT_DEFS += -DLED_MATRIX_CUSTOM_USER
endif
endif
# Deprecated driver names - do not use
@@ -460,12 +464,16 @@ ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
COMMON_VPATH += $(QUANTUM_DIR)/rgb_matrix/animations
COMMON_VPATH += $(QUANTUM_DIR)/rgb_matrix/animations/runners
POST_CONFIG_H += $(QUANTUM_DIR)/rgb_matrix/post_config.h
# TODO: Remove this
SRC += $(QUANTUM_DIR)/process_keycode/process_underglow.c
SRC += $(QUANTUM_DIR)/process_keycode/process_rgb_matrix.c
SRC += $(QUANTUM_DIR)/color.c
SRC += $(QUANTUM_DIR)/rgb_matrix/rgb_matrix.c
SRC += $(QUANTUM_DIR)/rgb_matrix/rgb_matrix_drivers.c
LIB8TION_ENABLE := yes
CIE1931_CURVE := yes
RGB_KEYCODES_ENABLE := yes
ifeq ($(strip $(RGB_MATRIX_DRIVER)), aw20216s)
SPI_DRIVER_REQUIRED = yes
@@ -568,10 +576,6 @@ ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
endif
endif
ifeq ($(strip $(RGB_KEYCODES_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_rgb.c
endif
VARIABLE_TRACE ?= no
ifneq ($(strip $(VARIABLE_TRACE)),no)
SRC += $(QUANTUM_DIR)/variable_trace.c
@@ -631,6 +635,10 @@ ifeq ($(strip $(VIA_ENABLE)), yes)
TRI_LAYER_ENABLE := yes
endif
ifeq ($(strip $(DYNAMIC_KEYMAP_ENABLE)), yes)
SEND_STRING_ENABLE := yes
endif
VALID_CUSTOM_MATRIX_TYPES:= yes lite no
CUSTOM_MATRIX ?= no
@@ -881,7 +889,7 @@ ifeq ($(strip $(BLUETOOTH_ENABLE)), yes)
OPT_DEFS += -DBLUETOOTH_$(strip $(shell echo $(BLUETOOTH_DRIVER) | tr '[:lower:]' '[:upper:]'))
NO_USB_STARTUP_CHECK := yes
COMMON_VPATH += $(DRIVER_PATH)/bluetooth
SRC += outputselect.c
SRC += outputselect.c process_connection.c
ifeq ($(strip $(BLUETOOTH_DRIVER)), bluefruit_le)
SPI_DRIVER_REQUIRED = yes
@@ -936,7 +944,9 @@ ifeq ($(strip $(WS2812_DRIVER_REQUIRED)), yes)
OPT_DEFS += -DWS2812_$(strip $(shell echo $(WS2812_DRIVER) | tr '[:lower:]' '[:upper:]'))
SRC += ws2812_$(strip $(WS2812_DRIVER)).c
COMMON_VPATH += $(DRIVER_PATH)/led
SRC += ws2812.c ws2812_$(strip $(WS2812_DRIVER)).c
ifeq ($(strip $(PLATFORM)), CHIBIOS)
ifeq ($(strip $(WS2812_DRIVER)), pwm)

View File

@@ -43,25 +43,25 @@ ifneq ($(USE_CCACHE),no)
CC_PREFIX ?= ccache
endif
#---------------- Debug Options ----------------
DEBUG_ENABLE ?= no
ifeq ($(strip $(DEBUG_ENABLE)),yes)
CFLAGS += -ggdb3
CXXFLAGS += -ggdb3
ASFLAGS += -ggdb3
# Create a map file when debugging
LDFLAGS += -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref
endif
#---------------- C Compiler Options ----------------
ifeq ($(strip $(LTO_ENABLE)), yes)
ifeq ($(PLATFORM),ARM_ATSAM)
$(info Enabling LTO on arm_atsam-targeting boards is known to have a high likelihood of failure.)
$(info If unsure, set LTO_ENABLE = no.)
endif
CDEFS += -flto
CDEFS += -DLTO_ENABLE
endif
DEBUG_ENABLE ?= yes
ifeq ($(strip $(SKIP_DEBUG_INFO)),yes)
DEBUG_ENABLE=no
endif
ifeq ($(strip $(DEBUG_ENABLE)),yes)
CFLAGS += -g$(DEBUG)
endif
CFLAGS += $(CDEFS)
CFLAGS += -O$(OPT)
# add color
@@ -83,9 +83,6 @@ CFLAGS += -fcommon
#---------------- C++ Compiler Options ----------------
ifeq ($(strip $(DEBUG_ENABLE)),yes)
CXXFLAGS += -g$(DEBUG)
endif
CXXFLAGS += $(CXXDEFS)
CXXFLAGS += -O$(OPT)
# to suppress "warning: only initialized variables can be placed into program memory area"
@@ -106,14 +103,10 @@ endif
#---------------- Linker Options ----------------
CREATE_MAP ?= yes
ifeq ($(CREATE_MAP),yes)
LDFLAGS += -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref
endif
ifeq ($(VERBOSE_LD_CMD),yes)
LDFLAGS += -v
endif
#LDFLAGS += -Wl,--relax
LDFLAGS += $(EXTMEMOPTS)
LDFLAGS += $(patsubst %,-L%,$(EXTRALIBDIRS))
LDFLAGS += -lm
@@ -126,15 +119,11 @@ ADHLNS_ENABLE ?= no
ifeq ($(ADHLNS_ENABLE),yes)
# Avoid "Options to '-Xassembler' do not match" - only specify assembler options at LTO link time
ifeq ($(strip $(LTO_ENABLE)), yes)
LDFLAGS += -Wa,-adhlns=$(BUILD_DIR)/$(TARGET).lst
LDFLAGS += -Wa,-adhlns=$(BUILD_DIR)/$(TARGET).lst
else
CFLAGS += -Wa,-adhlns=$(@:%.o=%.lst)
CFLAGS += -Wa,-adhlns=$(@:%.o=%.lst)
CXXFLAGS += -Wa,-adhlns=$(@:%.o=%.lst)
ifeq ($(strip $(DEBUG_ENABLE)),yes)
ASFLAGS = -Wa,-adhlns=$(@:%.o=%.lst),-gstabs,--listing-cont-lines=100
else
ASFLAGS = -Wa,-adhlns=$(@:%.o=%.lst),--listing-cont-lines=100
endif
ASFLAGS += -Wa,-adhlns=$(@:%.o=%.lst),--listing-cont-lines=100
endif
endif

View File

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

View File

@@ -39,8 +39,15 @@ export default defineConfig(({ mode }) => {
provider: "local",
},
editLink: {
pattern: 'https://github.com/qmk/qmk_firmware/edit/master/docs/:path'
},
lastUpdated: true,
sidebar: sidebar,
externalLinkIcon: true,
socialLinks: [
{ icon: { svg: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="50px" height="50px"><path d="M 29 3 C 28.0625 3 27.164063 3.382813 26.5 4 C 25.835938 4.617188 25.363281 5.433594 25 6.40625 C 24.355469 8.140625 24.085938 10.394531 24.03125 13.03125 C 19.234375 13.179688 14.820313 14.421875 11.28125 16.46875 C 10.214844 15.46875 8.855469 14.96875 7.5 14.96875 C 6.089844 14.96875 4.675781 15.511719 3.59375 16.59375 C 1.425781 18.761719 1.425781 22.238281 3.59375 24.40625 L 3.84375 24.65625 C 3.3125 26.035156 3 27.488281 3 29 C 3 33.527344 5.566406 37.585938 9.5625 40.4375 C 13.558594 43.289063 19.007813 45 25 45 C 30.992188 45 36.441406 43.289063 40.4375 40.4375 C 44.433594 37.585938 47 33.527344 47 29 C 47 27.488281 46.6875 26.035156 46.15625 24.65625 L 46.40625 24.40625 C 48.574219 22.238281 48.574219 18.761719 46.40625 16.59375 C 45.324219 15.511719 43.910156 14.96875 42.5 14.96875 C 41.144531 14.96875 39.785156 15.46875 38.71875 16.46875 C 35.195313 14.433594 30.800781 13.191406 26.03125 13.03125 C 26.09375 10.546875 26.363281 8.46875 26.875 7.09375 C 27.164063 6.316406 27.527344 5.757813 27.875 5.4375 C 28.222656 5.117188 28.539063 5 29 5 C 29.460938 5 29.683594 5.125 30.03125 5.40625 C 30.378906 5.6875 30.785156 6.148438 31.3125 6.6875 C 32.253906 7.652344 33.695313 8.714844 36.09375 8.9375 C 36.539063 11.238281 38.574219 13 41 13 C 43.75 13 46 10.75 46 8 C 46 5.25 43.75 3 41 3 C 38.605469 3 36.574219 4.710938 36.09375 6.96875 C 34.3125 6.796875 33.527344 6.109375 32.75 5.3125 C 32.300781 4.851563 31.886719 4.3125 31.3125 3.84375 C 30.738281 3.375 29.9375 3 29 3 Z M 41 5 C 42.667969 5 44 6.332031 44 8 C 44 9.667969 42.667969 11 41 11 C 39.332031 11 38 9.667969 38 8 C 38 6.332031 39.332031 5 41 5 Z M 25 15 C 30.609375 15 35.675781 16.613281 39.28125 19.1875 C 42.886719 21.761719 45 25.226563 45 29 C 45 32.773438 42.886719 36.238281 39.28125 38.8125 C 35.675781 41.386719 30.609375 43 25 43 C 19.390625 43 14.324219 41.386719 10.71875 38.8125 C 7.113281 36.238281 5 32.773438 5 29 C 5 25.226563 7.113281 21.761719 10.71875 19.1875 C 14.324219 16.613281 19.390625 15 25 15 Z M 7.5 16.9375 C 8.203125 16.9375 8.914063 17.148438 9.53125 17.59375 C 7.527344 19.03125 5.886719 20.769531 4.75 22.71875 C 3.582031 21.296875 3.660156 19.339844 5 18 C 5.714844 17.285156 6.609375 16.9375 7.5 16.9375 Z M 42.5 16.9375 C 43.390625 16.9375 44.285156 17.285156 45 18 C 46.339844 19.339844 46.417969 21.296875 45.25 22.71875 C 44.113281 20.769531 42.472656 19.03125 40.46875 17.59375 C 41.085938 17.148438 41.796875 16.9375 42.5 16.9375 Z M 17 22 C 14.800781 22 13 23.800781 13 26 C 13 28.199219 14.800781 30 17 30 C 19.199219 30 21 28.199219 21 26 C 21 23.800781 19.199219 22 17 22 Z M 33 22 C 30.800781 22 29 23.800781 29 26 C 29 28.199219 30.800781 30 33 30 C 35.199219 30 37 28.199219 37 26 C 37 23.800781 35.199219 22 33 22 Z M 17 24 C 18.117188 24 19 24.882813 19 26 C 19 27.117188 18.117188 28 17 28 C 15.882813 28 15 27.117188 15 26 C 15 24.882813 15.882813 24 17 24 Z M 33 24 C 34.117188 24 35 24.882813 35 26 C 35 27.117188 34.117188 28 33 28 C 31.882813 28 31 27.117188 31 26 C 31 24.882813 31.882813 24 33 24 Z M 34.15625 33.84375 C 34.101563 33.851563 34.050781 33.859375 34 33.875 C 33.683594 33.9375 33.417969 34.144531 33.28125 34.4375 C 33.28125 34.4375 32.757813 35.164063 31.4375 36 C 30.117188 36.835938 28.058594 37.6875 25 37.6875 C 21.941406 37.6875 19.882813 36.835938 18.5625 36 C 17.242188 35.164063 16.71875 34.4375 16.71875 34.4375 C 16.492188 34.082031 16.066406 33.90625 15.65625 34 C 15.332031 34.082031 15.070313 34.316406 14.957031 34.632813 C 14.84375 34.945313 14.894531 35.292969 15.09375 35.5625 C 15.09375 35.5625 15.863281 36.671875 17.46875 37.6875 C 19.074219 38.703125 21.558594 39.6875 25 39.6875 C 28.441406 39.6875 30.925781 38.703125 32.53125 37.6875 C 34.136719 36.671875 34.90625 35.5625 34.90625 35.5625 C 35.207031 35.273438 35.296875 34.824219 35.128906 34.441406 C 34.960938 34.058594 34.574219 33.820313 34.15625 33.84375 Z"/></svg>' }, link: "https://reddit.com/r/olkb" },
{ icon: "discord", link: "https://discord.gg/qmk" },

View File

@@ -1,7 +1,7 @@
{
"license": "GPL-2.0-or-later",
"devDependencies": {
"vite": "^5.2.10",
"vite": "^5.4.15",
"vitepress": "^1.1.0",
"vitepress-plugin-tabs": "^0.5.0",
"vue": "^3.4.24"

View File

@@ -178,205 +178,220 @@
"@docsearch/css" "3.6.0"
algoliasearch "^4.19.1"
"@esbuild/aix-ppc64@0.20.2":
version "0.20.2"
resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz#a70f4ac11c6a1dfc18b8bbb13284155d933b9537"
integrity sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==
"@esbuild/aix-ppc64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f"
integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==
"@esbuild/android-arm64@0.20.2":
version "0.20.2"
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz#db1c9202a5bc92ea04c7b6840f1bbe09ebf9e6b9"
integrity sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==
"@esbuild/android-arm64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052"
integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==
"@esbuild/android-arm@0.20.2":
version "0.20.2"
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz#3b488c49aee9d491c2c8f98a909b785870d6e995"
integrity sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==
"@esbuild/android-arm@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28"
integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==
"@esbuild/android-x64@0.20.2":
version "0.20.2"
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz#3b1628029e5576249d2b2d766696e50768449f98"
integrity sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==
"@esbuild/android-x64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e"
integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==
"@esbuild/darwin-arm64@0.20.2":
version "0.20.2"
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz#6e8517a045ddd86ae30c6608c8475ebc0c4000bb"
integrity sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==
"@esbuild/darwin-arm64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a"
integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==
"@esbuild/darwin-x64@0.20.2":
version "0.20.2"
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz#90ed098e1f9dd8a9381695b207e1cff45540a0d0"
integrity sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==
"@esbuild/darwin-x64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22"
integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==
"@esbuild/freebsd-arm64@0.20.2":
version "0.20.2"
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz#d71502d1ee89a1130327e890364666c760a2a911"
integrity sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==
"@esbuild/freebsd-arm64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e"
integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==
"@esbuild/freebsd-x64@0.20.2":
version "0.20.2"
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz#aa5ea58d9c1dd9af688b8b6f63ef0d3d60cea53c"
integrity sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==
"@esbuild/freebsd-x64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261"
integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==
"@esbuild/linux-arm64@0.20.2":
version "0.20.2"
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz#055b63725df678379b0f6db9d0fa85463755b2e5"
integrity sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==
"@esbuild/linux-arm64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b"
integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==
"@esbuild/linux-arm@0.20.2":
version "0.20.2"
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz#76b3b98cb1f87936fbc37f073efabad49dcd889c"
integrity sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==
"@esbuild/linux-arm@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9"
integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==
"@esbuild/linux-ia32@0.20.2":
version "0.20.2"
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz#c0e5e787c285264e5dfc7a79f04b8b4eefdad7fa"
integrity sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==
"@esbuild/linux-ia32@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2"
integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==
"@esbuild/linux-loong64@0.20.2":
version "0.20.2"
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz#a6184e62bd7cdc63e0c0448b83801001653219c5"
integrity sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==
"@esbuild/linux-loong64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df"
integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==
"@esbuild/linux-mips64el@0.20.2":
version "0.20.2"
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz#d08e39ce86f45ef8fc88549d29c62b8acf5649aa"
integrity sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==
"@esbuild/linux-mips64el@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe"
integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==
"@esbuild/linux-ppc64@0.20.2":
version "0.20.2"
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz#8d252f0b7756ffd6d1cbde5ea67ff8fd20437f20"
integrity sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==
"@esbuild/linux-ppc64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4"
integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==
"@esbuild/linux-riscv64@0.20.2":
version "0.20.2"
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz#19f6dcdb14409dae607f66ca1181dd4e9db81300"
integrity sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==
"@esbuild/linux-riscv64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc"
integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==
"@esbuild/linux-s390x@0.20.2":
version "0.20.2"
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz#3c830c90f1a5d7dd1473d5595ea4ebb920988685"
integrity sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==
"@esbuild/linux-s390x@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de"
integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==
"@esbuild/linux-x64@0.20.2":
version "0.20.2"
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz#86eca35203afc0d9de0694c64ec0ab0a378f6fff"
integrity sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==
"@esbuild/linux-x64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0"
integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==
"@esbuild/netbsd-x64@0.20.2":
version "0.20.2"
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz#e771c8eb0e0f6e1877ffd4220036b98aed5915e6"
integrity sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==
"@esbuild/netbsd-x64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047"
integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==
"@esbuild/openbsd-x64@0.20.2":
version "0.20.2"
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz#9a795ae4b4e37e674f0f4d716f3e226dd7c39baf"
integrity sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==
"@esbuild/openbsd-x64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70"
integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==
"@esbuild/sunos-x64@0.20.2":
version "0.20.2"
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz#7df23b61a497b8ac189def6e25a95673caedb03f"
integrity sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==
"@esbuild/sunos-x64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b"
integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==
"@esbuild/win32-arm64@0.20.2":
version "0.20.2"
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz#f1ae5abf9ca052ae11c1bc806fb4c0f519bacf90"
integrity sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==
"@esbuild/win32-arm64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d"
integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==
"@esbuild/win32-ia32@0.20.2":
version "0.20.2"
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz#241fe62c34d8e8461cd708277813e1d0ba55ce23"
integrity sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==
"@esbuild/win32-ia32@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b"
integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==
"@esbuild/win32-x64@0.20.2":
version "0.20.2"
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz#9c907b21e30a52db959ba4f80bb01a0cc403d5cc"
integrity sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==
"@esbuild/win32-x64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c"
integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==
"@jridgewell/sourcemap-codec@^1.4.15":
version "1.4.15"
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
"@rollup/rollup-android-arm-eabi@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.16.4.tgz#5e8930291f1e5ead7fb1171d53ba5c87718de062"
integrity sha512-GkhjAaQ8oUTOKE4g4gsZ0u8K/IHU1+2WQSgS1TwTcYvL+sjbaQjNHFXbOJ6kgqGHIO1DfUhI/Sphi9GkRT9K+Q==
"@rollup/rollup-android-arm-eabi@4.31.0":
version "4.31.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.31.0.tgz#d4dd60da0075a6ce9a6c76d71b8204f3e1822285"
integrity sha512-9NrR4033uCbUBRgvLcBrJofa2KY9DzxL2UKZ1/4xA/mnTNyhZCWBuD8X3tPm1n4KxcgaraOYgrFKSgwjASfmlA==
"@rollup/rollup-android-arm64@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.16.4.tgz#ffb84f1359c04ec8a022a97110e18a5600f5f638"
integrity sha512-Bvm6D+NPbGMQOcxvS1zUl8H7DWlywSXsphAeOnVeiZLQ+0J6Is8T7SrjGTH29KtYkiY9vld8ZnpV3G2EPbom+w==
"@rollup/rollup-android-arm64@4.31.0":
version "4.31.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.31.0.tgz#25c4d33259a7a2ccd2f52a5ffcc0bb3ab3f0729d"
integrity sha512-iBbODqT86YBFHajxxF8ebj2hwKm1k8PTBQSojSt3d1FFt1gN+xf4CowE47iN0vOSdnd+5ierMHBbu/rHc7nq5g==
"@rollup/rollup-darwin-arm64@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.16.4.tgz#b2fcee8d4806a0b1b9185ac038cc428ddedce9f4"
integrity sha512-i5d64MlnYBO9EkCOGe5vPR/EeDwjnKOGGdd7zKFhU5y8haKhQZTN2DgVtpODDMxUr4t2K90wTUJg7ilgND6bXw==
"@rollup/rollup-darwin-arm64@4.31.0":
version "4.31.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.31.0.tgz#d137dff254b19163a6b52ac083a71cd055dae844"
integrity sha512-WHIZfXgVBX30SWuTMhlHPXTyN20AXrLH4TEeH/D0Bolvx9PjgZnn4H677PlSGvU6MKNsjCQJYczkpvBbrBnG6g==
"@rollup/rollup-darwin-x64@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.16.4.tgz#fcb25ccbaa3dd33a6490e9d1c64bab2e0e16b932"
integrity sha512-WZupV1+CdUYehaZqjaFTClJI72fjJEgTXdf4NbW69I9XyvdmztUExBtcI2yIIU6hJtYvtwS6pkTkHJz+k08mAQ==
"@rollup/rollup-darwin-x64@4.31.0":
version "4.31.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.31.0.tgz#58ff20b5dacb797d3adca19f02a21c532f9d55bf"
integrity sha512-hrWL7uQacTEF8gdrQAqcDy9xllQ0w0zuL1wk1HV8wKGSGbKPVjVUv/DEwT2+Asabf8Dh/As+IvfdU+H8hhzrQQ==
"@rollup/rollup-linux-arm-gnueabihf@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.16.4.tgz#40d46bdfe667e5eca31bf40047460e326d2e26bb"
integrity sha512-ADm/xt86JUnmAfA9mBqFcRp//RVRt1ohGOYF6yL+IFCYqOBNwy5lbEK05xTsEoJq+/tJzg8ICUtS82WinJRuIw==
"@rollup/rollup-freebsd-arm64@4.31.0":
version "4.31.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.31.0.tgz#96ce1a241c591ec3e068f4af765d94eddb24e60c"
integrity sha512-S2oCsZ4hJviG1QjPY1h6sVJLBI6ekBeAEssYKad1soRFv3SocsQCzX6cwnk6fID6UQQACTjeIMB+hyYrFacRew==
"@rollup/rollup-linux-arm-musleabihf@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.16.4.tgz#7741df2448c11c56588b50835dbfe91b1a10b375"
integrity sha512-tJfJaXPiFAG+Jn3cutp7mCs1ePltuAgRqdDZrzb1aeE3TktWWJ+g7xK9SNlaSUFw6IU4QgOxAY4rA+wZUT5Wfg==
"@rollup/rollup-freebsd-x64@4.31.0":
version "4.31.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.31.0.tgz#e59e7ede505be41f0b4311b0b943f8eb44938467"
integrity sha512-pCANqpynRS4Jirn4IKZH4tnm2+2CqCNLKD7gAdEjzdLGbH1iO0zouHz4mxqg0uEMpO030ejJ0aA6e1PJo2xrPA==
"@rollup/rollup-linux-arm64-gnu@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.16.4.tgz#0a23b02d2933e4c4872ad18d879890b6a4a295df"
integrity sha512-7dy1BzQkgYlUTapDTvK997cgi0Orh5Iu7JlZVBy1MBURk7/HSbHkzRnXZa19ozy+wwD8/SlpJnOOckuNZtJR9w==
"@rollup/rollup-linux-arm-gnueabihf@4.31.0":
version "4.31.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.31.0.tgz#e455ca6e4ff35bd46d62201c153352e717000a7b"
integrity sha512-0O8ViX+QcBd3ZmGlcFTnYXZKGbFu09EhgD27tgTdGnkcYXLat4KIsBBQeKLR2xZDCXdIBAlWLkiXE1+rJpCxFw==
"@rollup/rollup-linux-arm64-musl@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.16.4.tgz#e37ef259358aa886cc07d782220a4fb83c1e6970"
integrity sha512-zsFwdUw5XLD1gQe0aoU2HVceI6NEW7q7m05wA46eUAyrkeNYExObfRFQcvA6zw8lfRc5BHtan3tBpo+kqEOxmg==
"@rollup/rollup-linux-arm-musleabihf@4.31.0":
version "4.31.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.31.0.tgz#bc1a93d807d19e70b1e343a5bfea43723bcd6327"
integrity sha512-w5IzG0wTVv7B0/SwDnMYmbr2uERQp999q8FMkKG1I+j8hpPX2BYFjWe69xbhbP6J9h2gId/7ogesl9hwblFwwg==
"@rollup/rollup-linux-powerpc64le-gnu@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.16.4.tgz#8c69218b6de05ee2ba211664a2d2ac1e54e43f94"
integrity sha512-p8C3NnxXooRdNrdv6dBmRTddEapfESEUflpICDNKXpHvTjRRq1J82CbU5G3XfebIZyI3B0s074JHMWD36qOW6w==
"@rollup/rollup-linux-arm64-gnu@4.31.0":
version "4.31.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.31.0.tgz#f38bf843f1dc3d5de680caf31084008846e3efae"
integrity sha512-JyFFshbN5xwy6fulZ8B/8qOqENRmDdEkcIMF0Zz+RsfamEW+Zabl5jAb0IozP/8UKnJ7g2FtZZPEUIAlUSX8cA==
"@rollup/rollup-linux-riscv64-gnu@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.16.4.tgz#d32727dab8f538d9a4a7c03bcf58c436aecd0139"
integrity sha512-Lh/8ckoar4s4Id2foY7jNgitTOUQczwMWNYi+Mjt0eQ9LKhr6sK477REqQkmy8YHY3Ca3A2JJVdXnfb3Rrwkng==
"@rollup/rollup-linux-arm64-musl@4.31.0":
version "4.31.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.31.0.tgz#b3987a96c18b7287129cf735be2dbf83e94d9d05"
integrity sha512-kpQXQ0UPFeMPmPYksiBL9WS/BDiQEjRGMfklVIsA0Sng347H8W2iexch+IEwaR7OVSKtr2ZFxggt11zVIlZ25g==
"@rollup/rollup-linux-s390x-gnu@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.16.4.tgz#d46097246a187d99fc9451fe8393b7155b47c5ec"
integrity sha512-1xwwn9ZCQYuqGmulGsTZoKrrn0z2fAur2ujE60QgyDpHmBbXbxLaQiEvzJWDrscRq43c8DnuHx3QorhMTZgisQ==
"@rollup/rollup-linux-loongarch64-gnu@4.31.0":
version "4.31.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.31.0.tgz#0f0324044e71c4f02e9f49e7ec4e347b655b34ee"
integrity sha512-pMlxLjt60iQTzt9iBb3jZphFIl55a70wexvo8p+vVFK+7ifTRookdoXX3bOsRdmfD+OKnMozKO6XM4zR0sHRrQ==
"@rollup/rollup-linux-x64-gnu@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.16.4.tgz#6356c5a03a4afb1c3057490fc51b4764e109dbc7"
integrity sha512-LuOGGKAJ7dfRtxVnO1i3qWc6N9sh0Em/8aZ3CezixSTM+E9Oq3OvTsvC4sm6wWjzpsIlOCnZjdluINKESflJLA==
"@rollup/rollup-linux-powerpc64le-gnu@4.31.0":
version "4.31.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.31.0.tgz#809479f27f1fd5b4eecd2aa732132ad952d454ba"
integrity sha512-D7TXT7I/uKEuWiRkEFbed1UUYZwcJDU4vZQdPTcepK7ecPhzKOYk4Er2YR4uHKme4qDeIh6N3XrLfpuM7vzRWQ==
"@rollup/rollup-linux-x64-musl@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.16.4.tgz#03a5831a9c0d05877b94653b5ddd3020d3c6fb06"
integrity sha512-ch86i7KkJKkLybDP2AtySFTRi5fM3KXp0PnHocHuJMdZwu7BuyIKi35BE9guMlmTpwwBTB3ljHj9IQXnTCD0vA==
"@rollup/rollup-linux-riscv64-gnu@4.31.0":
version "4.31.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.31.0.tgz#7bc75c4f22db04d3c972f83431739cfa41c6a36e"
integrity sha512-wal2Tc8O5lMBtoePLBYRKj2CImUCJ4UNGJlLwspx7QApYny7K1cUYlzQ/4IGQBLmm+y0RS7dwc3TDO/pmcneTw==
"@rollup/rollup-win32-arm64-msvc@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.16.4.tgz#6cc0db57750376b9303bdb6f5482af8974fcae35"
integrity sha512-Ma4PwyLfOWZWayfEsNQzTDBVW8PZ6TUUN1uFTBQbF2Chv/+sjenE86lpiEwj2FiviSmSZ4Ap4MaAfl1ciF4aSA==
"@rollup/rollup-linux-s390x-gnu@4.31.0":
version "4.31.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.31.0.tgz#cfe8052345c55864d83ae343362cf1912480170e"
integrity sha512-O1o5EUI0+RRMkK9wiTVpk2tyzXdXefHtRTIjBbmFREmNMy7pFeYXCFGbhKFwISA3UOExlo5GGUuuj3oMKdK6JQ==
"@rollup/rollup-win32-ia32-msvc@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.16.4.tgz#aea0b7e492bd9ed46971cb80bc34f1eb14e07789"
integrity sha512-9m/ZDrQsdo/c06uOlP3W9G2ENRVzgzbSXmXHT4hwVaDQhYcRpi9bgBT0FTG9OhESxwK0WjQxYOSfv40cU+T69w==
"@rollup/rollup-linux-x64-gnu@4.31.0":
version "4.31.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.31.0.tgz#c6b048f1e25f3fea5b4bd246232f4d07a159c5a0"
integrity sha512-zSoHl356vKnNxwOWnLd60ixHNPRBglxpv2g7q0Cd3Pmr561gf0HiAcUBRL3S1vPqRC17Zo2CX/9cPkqTIiai1g==
"@rollup/rollup-win32-x64-msvc@4.16.4":
version "4.16.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.16.4.tgz#c09ad9a132ccb5a67c4f211d909323ab1294f95f"
integrity sha512-YunpoOAyGLDseanENHmbFvQSfVL5BxW3k7hhy0eN4rb3gS/ct75dVD0EXOWIqFT/nE8XYW6LP6vz6ctKRi0k9A==
"@rollup/rollup-linux-x64-musl@4.31.0":
version "4.31.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.31.0.tgz#615273ac52d1a201f4de191cbd3389016a9d7d80"
integrity sha512-ypB/HMtcSGhKUQNiFwqgdclWNRrAYDH8iMYH4etw/ZlGwiTVxBz2tDrGRrPlfZu6QjXwtd+C3Zib5pFqID97ZA==
"@rollup/rollup-win32-arm64-msvc@4.31.0":
version "4.31.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.31.0.tgz#32ed85810c1b831c648eca999d68f01255b30691"
integrity sha512-JuhN2xdI/m8Hr+aVO3vspO7OQfUFO6bKLIRTAy0U15vmWjnZDLrEgCZ2s6+scAYaQVpYSh9tZtRijApw9IXyMw==
"@rollup/rollup-win32-ia32-msvc@4.31.0":
version "4.31.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.31.0.tgz#d47effada68bcbfdccd30c4a788d42e4542ff4d3"
integrity sha512-U1xZZXYkvdf5MIWmftU8wrM5PPXzyaY1nGCI4KI4BFfoZxHamsIe+BtnPLIvvPykvQWlVbqUXdLa4aJUuilwLQ==
"@rollup/rollup-win32-x64-msvc@4.31.0":
version "4.31.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.31.0.tgz#7a2d89a82cf0388d60304964217dd7beac6de645"
integrity sha512-ul8rnCsUumNln5YWwz0ted2ZHFhzhRRnkpBZ+YRuHoRAlUji9KChpOUOndY7uykrPEPXVbHLlsdo6v5yXo/TXw==
"@shikijs/core@1.3.0", "@shikijs/core@^1.3.0":
version "1.3.0"
@@ -390,10 +405,10 @@
dependencies:
shiki "1.3.0"
"@types/estree@1.0.5":
version "1.0.5"
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4"
integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==
"@types/estree@1.0.6":
version "1.0.6"
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50"
integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==
"@types/linkify-it@*":
version "3.0.5"
@@ -589,34 +604,34 @@ entities@^4.5.0:
resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
esbuild@^0.20.1:
version "0.20.2"
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.20.2.tgz#9d6b2386561766ee6b5a55196c6d766d28c87ea1"
integrity sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==
esbuild@^0.21.3:
version "0.21.5"
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d"
integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==
optionalDependencies:
"@esbuild/aix-ppc64" "0.20.2"
"@esbuild/android-arm" "0.20.2"
"@esbuild/android-arm64" "0.20.2"
"@esbuild/android-x64" "0.20.2"
"@esbuild/darwin-arm64" "0.20.2"
"@esbuild/darwin-x64" "0.20.2"
"@esbuild/freebsd-arm64" "0.20.2"
"@esbuild/freebsd-x64" "0.20.2"
"@esbuild/linux-arm" "0.20.2"
"@esbuild/linux-arm64" "0.20.2"
"@esbuild/linux-ia32" "0.20.2"
"@esbuild/linux-loong64" "0.20.2"
"@esbuild/linux-mips64el" "0.20.2"
"@esbuild/linux-ppc64" "0.20.2"
"@esbuild/linux-riscv64" "0.20.2"
"@esbuild/linux-s390x" "0.20.2"
"@esbuild/linux-x64" "0.20.2"
"@esbuild/netbsd-x64" "0.20.2"
"@esbuild/openbsd-x64" "0.20.2"
"@esbuild/sunos-x64" "0.20.2"
"@esbuild/win32-arm64" "0.20.2"
"@esbuild/win32-ia32" "0.20.2"
"@esbuild/win32-x64" "0.20.2"
"@esbuild/aix-ppc64" "0.21.5"
"@esbuild/android-arm" "0.21.5"
"@esbuild/android-arm64" "0.21.5"
"@esbuild/android-x64" "0.21.5"
"@esbuild/darwin-arm64" "0.21.5"
"@esbuild/darwin-x64" "0.21.5"
"@esbuild/freebsd-arm64" "0.21.5"
"@esbuild/freebsd-x64" "0.21.5"
"@esbuild/linux-arm" "0.21.5"
"@esbuild/linux-arm64" "0.21.5"
"@esbuild/linux-ia32" "0.21.5"
"@esbuild/linux-loong64" "0.21.5"
"@esbuild/linux-mips64el" "0.21.5"
"@esbuild/linux-ppc64" "0.21.5"
"@esbuild/linux-riscv64" "0.21.5"
"@esbuild/linux-s390x" "0.21.5"
"@esbuild/linux-x64" "0.21.5"
"@esbuild/netbsd-x64" "0.21.5"
"@esbuild/openbsd-x64" "0.21.5"
"@esbuild/sunos-x64" "0.21.5"
"@esbuild/win32-arm64" "0.21.5"
"@esbuild/win32-ia32" "0.21.5"
"@esbuild/win32-x64" "0.21.5"
estree-walker@^2.0.2:
version "2.0.2"
@@ -662,29 +677,29 @@ mitt@^3.0.1:
resolved "https://registry.yarnpkg.com/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1"
integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==
nanoid@^3.3.7:
version "3.3.7"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
nanoid@^3.3.8:
version "3.3.8"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf"
integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==
perfect-debounce@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz#9c2e8bc30b169cc984a58b7d5b28049839591d2a"
integrity sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==
picocolors@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
picocolors@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b"
integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
postcss@^8.4.38:
version "8.4.38"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e"
integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==
postcss@^8.4.38, postcss@^8.4.43:
version "8.5.1"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.1.tgz#e2272a1f8a807fafa413218245630b5db10a3214"
integrity sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==
dependencies:
nanoid "^3.3.7"
picocolors "^1.0.0"
source-map-js "^1.2.0"
nanoid "^3.3.8"
picocolors "^1.1.1"
source-map-js "^1.2.1"
preact@^10.0.0:
version "10.20.2"
@@ -696,29 +711,32 @@ rfdc@^1.3.1:
resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.1.tgz#2b6d4df52dffe8bb346992a10ea9451f24373a8f"
integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==
rollup@^4.13.0:
version "4.16.4"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.16.4.tgz#fe328eb41293f20c9593a095ec23bdc4b5d93317"
integrity sha512-kuaTJSUbz+Wsb2ATGvEknkI12XV40vIiHmLuFlejoo7HtDok/O5eDDD0UpCVY5bBX5U5RYo8wWP83H7ZsqVEnA==
rollup@^4.20.0:
version "4.31.0"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.31.0.tgz#b84af969a0292cb047dce2c0ec5413a9457597a4"
integrity sha512-9cCE8P4rZLx9+PjoyqHLs31V9a9Vpvfo4qNcs6JCiGWYhw2gijSetFbH6SSy1whnkgcefnUwr8sad7tgqsGvnw==
dependencies:
"@types/estree" "1.0.5"
"@types/estree" "1.0.6"
optionalDependencies:
"@rollup/rollup-android-arm-eabi" "4.16.4"
"@rollup/rollup-android-arm64" "4.16.4"
"@rollup/rollup-darwin-arm64" "4.16.4"
"@rollup/rollup-darwin-x64" "4.16.4"
"@rollup/rollup-linux-arm-gnueabihf" "4.16.4"
"@rollup/rollup-linux-arm-musleabihf" "4.16.4"
"@rollup/rollup-linux-arm64-gnu" "4.16.4"
"@rollup/rollup-linux-arm64-musl" "4.16.4"
"@rollup/rollup-linux-powerpc64le-gnu" "4.16.4"
"@rollup/rollup-linux-riscv64-gnu" "4.16.4"
"@rollup/rollup-linux-s390x-gnu" "4.16.4"
"@rollup/rollup-linux-x64-gnu" "4.16.4"
"@rollup/rollup-linux-x64-musl" "4.16.4"
"@rollup/rollup-win32-arm64-msvc" "4.16.4"
"@rollup/rollup-win32-ia32-msvc" "4.16.4"
"@rollup/rollup-win32-x64-msvc" "4.16.4"
"@rollup/rollup-android-arm-eabi" "4.31.0"
"@rollup/rollup-android-arm64" "4.31.0"
"@rollup/rollup-darwin-arm64" "4.31.0"
"@rollup/rollup-darwin-x64" "4.31.0"
"@rollup/rollup-freebsd-arm64" "4.31.0"
"@rollup/rollup-freebsd-x64" "4.31.0"
"@rollup/rollup-linux-arm-gnueabihf" "4.31.0"
"@rollup/rollup-linux-arm-musleabihf" "4.31.0"
"@rollup/rollup-linux-arm64-gnu" "4.31.0"
"@rollup/rollup-linux-arm64-musl" "4.31.0"
"@rollup/rollup-linux-loongarch64-gnu" "4.31.0"
"@rollup/rollup-linux-powerpc64le-gnu" "4.31.0"
"@rollup/rollup-linux-riscv64-gnu" "4.31.0"
"@rollup/rollup-linux-s390x-gnu" "4.31.0"
"@rollup/rollup-linux-x64-gnu" "4.31.0"
"@rollup/rollup-linux-x64-musl" "4.31.0"
"@rollup/rollup-win32-arm64-msvc" "4.31.0"
"@rollup/rollup-win32-ia32-msvc" "4.31.0"
"@rollup/rollup-win32-x64-msvc" "4.31.0"
fsevents "~2.3.2"
shiki@1.3.0, shiki@^1.3.0:
@@ -733,6 +751,11 @@ source-map-js@^1.2.0:
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af"
integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==
source-map-js@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46"
integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==
speakingurl@^14.0.1:
version "14.0.1"
resolved "https://registry.yarnpkg.com/speakingurl/-/speakingurl-14.0.1.tgz#f37ec8ddc4ab98e9600c1c9ec324a8c48d772a53"
@@ -743,14 +766,14 @@ tabbable@^6.2.0:
resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97"
integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==
vite@^5.2.10, vite@^5.2.9:
version "5.2.10"
resolved "https://registry.yarnpkg.com/vite/-/vite-5.2.10.tgz#2ac927c91e99d51b376a5c73c0e4b059705f5bd7"
integrity sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==
vite@^5.2.9, vite@^5.4.15:
version "5.4.15"
resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.15.tgz#2941547f10ebb4bf9b0fa0da863c06711eb7e5e5"
integrity sha512-6ANcZRivqL/4WtwPGTKNaosuNJr5tWiftOC7liM7G9+rMb8+oeJeyzymDu4rTN93seySBmbjSfsS3Vzr19KNtA==
dependencies:
esbuild "^0.20.1"
postcss "^8.4.38"
rollup "^4.13.0"
esbuild "^0.21.3"
postcss "^8.4.43"
rollup "^4.20.0"
optionalDependencies:
fsevents "~2.3.3"

View File

@@ -36,6 +36,7 @@ GENERIC_FEATURES = \
HAPTIC \
KEY_LOCK \
KEY_OVERRIDE \
LAYER_LOCK \
LEADER \
MAGIC \
MOUSEKEY \

View File

@@ -67,7 +67,6 @@ OTHER_OPTION_NAMES = \
PS2_DRIVER \
RAW_ENABLE \
SWAP_HANDS_ENABLE \
RING_BUFFERED_6KRO_REPORT_ENABLE \
WATCHDOG_ENABLE \
ERGOINU \
NO_USB_STARTUP_CHECK \

View File

@@ -0,0 +1,596 @@
{
"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": "EU_GRV",
"label": "`",
}
"KC_1": {
"key": "EU_1",
"label": "1",
}
"KC_2": {
"key": "EU_2",
"label": "2",
}
"KC_3": {
"key": "EU_3",
"label": "3",
}
"KC_4": {
"key": "EU_4",
"label": "4",
}
"KC_5": {
"key": "EU_5",
"label": "5",
}
"KC_6": {
"key": "EU_6",
"label": "6",
}
"KC_7": {
"key": "EU_7",
"label": "7",
}
"KC_8": {
"key": "EU_8",
"label": "8",
}
"KC_9": {
"key": "EU_9",
"label": "9",
}
"KC_0": {
"key": "EU_0",
"label": "0",
}
"KC_MINS": {
"key": "EU_MINS",
"label": "-",
}
"KC_EQL": {
"key": "EU_EQL",
"label": "=",
}
"KC_Q": {
"key": "EU_Q",
"label": "Q",
}
"KC_W": {
"key": "EU_W",
"label": "W",
}
"KC_E": {
"key": "EU_E",
"label": "E",
}
"KC_R": {
"key": "EU_R",
"label": "R",
}
"KC_T": {
"key": "EU_T",
"label": "T",
}
"KC_Y": {
"key": "EU_Y",
"label": "Y",
}
"KC_U": {
"key": "EU_U",
"label": "U",
}
"KC_I": {
"key": "EU_I",
"label": "I",
}
"KC_O": {
"key": "EU_O",
"label": "O",
}
"KC_P": {
"key": "EU_P",
"label": "P",
}
"KC_LBRC": {
"key": "EU_LBRC",
"label": "[",
}
"KC_RBRC": {
"key": "EU_RBRC",
"label": "]",
}
"KC_BSLS": {
"key": "EU_BSLS",
"label": "\\",
}
"KC_A": {
"key": "EU_A",
"label": "A",
}
"KC_S": {
"key": "EU_S",
"label": "S",
}
"KC_D": {
"key": "EU_D",
"label": "D",
}
"KC_F": {
"key": "EU_F",
"label": "F",
}
"KC_G": {
"key": "EU_G",
"label": "G",
}
"KC_H": {
"key": "EU_H",
"label": "H",
}
"KC_J": {
"key": "EU_J",
"label": "J",
}
"KC_K": {
"key": "EU_K",
"label": "K",
}
"KC_L": {
"key": "EU_L",
"label": "L",
}
"KC_SCLN": {
"key": "EU_SCLN",
"label": ";",
}
"KC_QUOT": {
"key": "EU_QUOT",
"label": "'",
}
"KC_Z": {
"key": "EU_Z",
"label": "Z",
}
"KC_X": {
"key": "EU_X",
"label": "X",
}
"KC_C": {
"key": "EU_C",
"label": "C",
}
"KC_V": {
"key": "EU_V",
"label": "V",
}
"KC_B": {
"key": "EU_B",
"label": "B",
}
"KC_N": {
"key": "EU_N",
"label": "N",
}
"KC_M": {
"key": "EU_M",
"label": "M",
}
"KC_COMM": {
"key": "EU_COMM",
"label": ",",
}
"KC_DOT": {
"key": "EU_DOT",
"label": ".",
}
"KC_SLSH": {
"key": "EU_SLSH",
"label": "/",
}
/* Shifted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ { │ } │ | │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
* │ │ │ │ │ │ │ │ │ │ │ : │ " │ │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
* │ │ │ │ │ │ │ │ │ < │ > │ ? │ │
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"S(EU_GRV)": {
"key": "EU_TILD",
"label": "~",
}
"S(EU_1)": {
"key": "EU_EXLM",
"label": "!",
}
"S(EU_2)": {
"key": "EU_AT",
"label": "@",
}
"S(EU_3)": {
"key": "EU_HASH",
"label": "#",
}
"S(EU_4)": {
"key": "EU_DLR",
"label": "$",
}
"S(EU_5)": {
"key": "EU_PERC",
"label": "%",
}
"S(EU_6)": {
"key": "EU_CIRC",
"label": "^",
}
"S(EU_7)": {
"key": "EU_AMPR",
"label": "&",
}
"S(EU_8)": {
"key": "EU_ASTR",
"label": "*",
}
"S(EU_9)": {
"key": "EU_LPRN",
"label": "(",
}
"S(EU_0)": {
"key": "EU_RPRN",
"label": ")",
}
"S(EU_MINS)": {
"key": "EU_UNDS",
"label": "_",
}
"S(EU_EQL)": {
"key": "EU_PLUS",
"label": "+",
}
"S(EU_LBRC)": {
"key": "EU_LCBR",
"label": "{",
}
"S(EU_RBRC)": {
"key": "EU_RCBR",
"label": "}",
}
"S(EU_BSLS)": {
"key": "EU_PIPE",
"label": "|",
}
"S(EU_SCLN)": {
"key": "EU_COLN",
"label": ":",
}
"S(EU_QUOT)": {
"key": "EU_DQUO",
"label": "\"",
}
"S(EU_COMM)": {
"key": "EU_LABK",
"label": "<",
}
"S(EU_DOT)": {
"key": "EU_RABK",
"label": ">",
}
"S(EU_SLSH)": {
"key": "EU_QUES",
"label": "?",
}
/* AltGr symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ` │ ¡ │ ª │ º │ £ │ € │ ^ │ ˚ │ „ │ “ │ ” │ × │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ æ │ å │ ë │ ý │ þ │ ÿ │ ü │ ï │ ö │ œ │ « │ » │ ¬ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
* │ │ ä │ ß │ ð │ è │ é │ ù │ ú │ ij │ ø │ ° │ ´ │ │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
* │ │ à │ á │ ç │ ì │ í │ ñ │ μ │ ò │ ó │ ¿ │ │
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"ALGR(EU_GRV)": {
"key": "EU_DGRV",
"label": "` (dead)",
}
"ALGR(EU_1)": {
"key": "EU_IEXL",
"label": "¡",
}
"ALGR(EU_2)": {
"key": "EU_FORD",
"label": "ª",
}
"ALGR(EU_3)": {
"key": "EU_MORD",
"label": "º",
}
"ALGR(EU_4)": {
"key": "EU_PND",
"label": "£",
}
"ALGR(EU_5)": {
"key": "EU_EURO",
"label": "€",
}
"ALGR(EU_6)": {
"key": "EU_DCIR",
"label": "^ (dead)",
}
"ALGR(EU_7)": {
"key": "EU_RNGA",
"label": "˚ (dead)",
}
"ALGR(EU_8)": {
"key": "EU_DLQU",
"label": "„",
}
"ALGR(EU_9)": {
"key": "EU_LDQU",
"label": "“",
}
"ALGR(EU_0)": {
"key": "EU_RDQU",
"label": "”",
}
"ALGR(EU_MINS)": {
"key": "EU_NDSH",
"label": "",
}
"ALGR(EU_EQL)": {
"key": "EU_MUL",
"label": "×",
}
"ALGR(EU_Q)": {
"key": "EU_AE",
"label": "æ",
}
"ALGR(EU_W)": {
"key": "EU_ARNG",
"label": "Å",
}
"ALGR(EU_E)": {
"key": "EU_EDIA",
"label": "Ë",
}
"ALGR(EU_R)": {
"key": "EU_YACU",
"label": "Ý",
}
"ALGR(EU_T)": {
"key": "EU_THRN",
"label": "Þ",
}
"ALGR(EU_Y)": {
"key": "EU_YDIA",
"label": "Ÿ",
}
"ALGR(EU_U)": {
"key": "EU_UDIA",
"label": "Ü",
}
"ALGR(EU_I)": {
"key": "EU_IDIA",
"label": "Ï",
}
"ALGR(EU_O)": {
"key": "EU_ODIA",
"label": "Ö",
}
"ALGR(EU_P)": {
"key": "EU_OE",
"label": "Œ",
}
"ALGR(EU_LBRC)": {
"key": "EU_LDAQ",
"label": "«",
}
"ALGR(EU_RBRC)": {
"key": "EU_RDAQ",
"label": "»",
}
"ALGR(EU_BSLS)": {
"key": "EU_NOT",
"label": "¬",
}
"ALGR(EU_A)": {
"key": "EU_ADIA",
"label": "Ä",
}
"ALGR(EU_S)": {
"key": "EU_SS",
"label": "ß",
}
"ALGR(EU_D)": {
"key": "EU_ETH",
"label": "Ð",
}
"ALGR(EU_F)": {
"key": "EU_EGRV",
"label": "È",
}
"ALGR(EU_G)": {
"key": "EU_EACU",
"label": "É",
}
"ALGR(EU_H)": {
"key": "EU_UGRV",
"label": "Ù",
}
"ALGR(EU_J)": {
"key": "EU_UACU",
"label": "Ú",
}
"ALGR(EU_K)": {
"key": "EU_IJ",
"label": "IJ",
}
"ALGR(EU_L)": {
"key": "EU_OSTR",
"label": "Ø",
}
"ALGR(EU_SCLN)": {
"key": "EU_DEG",
"label": "°",
}
"ALGR(EU_QUOT)": {
"key": "EU_ACUT",
"label": "´ (dead)",
}
"ALGR(EU_Z)": {
"key": "EU_AGRV",
"label": "À",
}
"ALGR(EU_X)": {
"key": "EU_AACU",
"label": "Á",
}
"ALGR(EU_C)": {
"key": "EU_CCED",
"label": "Ç",
}
"ALGR(EU_V)": {
"key": "EU_IGRV",
"label": "Ì",
}
"ALGR(EU_B)": {
"key": "EU_IACU",
"label": "Í",
}
"ALGR(EU_N)": {
"key": "EU_NTIL",
"label": "Ñ",
}
"ALGR(EU_M)": {
"key": "EU_DGRK",
"label": "μ (dead Greek key)",
}
"ALGR(EU_COMM)": {
"key": "EU_OGRV",
"label": "Ò",
}
"ALGR(EU_DOT)": {
"key": "EU_OACU",
"label": "Ó",
}
"ALGR(EU_SLSH)": {
"key": "EU_IQUE",
"label": "¿",
}
/* Shift+AltGr symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ~ │ ¹ │ ² │ ³ │ ¥ │ ¢ │ ˇ │ ¯ │ │ — │ ÷ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ │ ¦ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
* │ │ │ § │ │ │ │ │ │ │ │ · │ ¨ │ │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
* │ │ │ │ │ │ │ │ │ │ │ … │ │
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"ALGR(EU_TILD)": {
"key": "EU_DTIL",
"label": "~ (dead)",
}
"S(ALGR(EU_1))": {
"key": "EU_SUP1",
"label": "¹",
}
"S(ALGR(EU_2))": {
"key": "EU_SUP2",
"label": "²",
}
"S(ALGR(EU_3))": {
"key": "EU_SUP3",
"label": "³",
}
"ALGR(EU_DLR)": {
"key": "EU_YEN",
"label": "¥",
}
"S(EU_EURO)": {
"key": "EU_CENT",
"label": "¢",
}
"S(EU_DCIR)": {
"key": "EU_CARN",
"label": "ˇ (dead)",
}
"S(ALGR(EU_7))": {
"key": "EU_MACR",
"label": "¯ (dead)",
}
"S(EU_DLQU)": {
"key": "EU_SLQU",
"label": "",
}
"S(EU_LDQU)": {
"key": "EU_LSQU",
"label": "",
}
"S(EU_RDQU)": {
"key": "EU_RSQU",
"label": "",
}
"S(EU_NDSH)": {
"key": "EU_MDSH",
"label": "—",
}
"S(EU_MUL)": {
"key": "EU_DIV",
"label": "÷",
}
"S(EU_LDAQ)": {
"key": "EU_LSAQ",
"label": "",
}
"S(EU_RDAQ)": {
"key": "EU_RSAQ",
"label": "",
}
"S(ALGR(EU_BSLS))": {
"key": "EU_BRKP",
"label": "¦",
}
"S(ALGR(EU_S))": {
"key": "EU_SECT",
"label": "§",
}
"S(ALGR(EU_SCLN))": {
"key": "EU_MDDT",
"label": "·",
}
"ALGR(EU_DQUO)": {
"key": "EU_DIAE",
"label": "¨ (dead)",
}
"ALGR(EU_QUES)": {
"key": "EU_ELLP",
"label": "…",
}
}
}

View File

@@ -527,7 +527,7 @@
"key": "FA_PIPE",
"label": "|",
}
"ALGR(FA_RA)": {
"ALGR(FA_RE)": {
"key": "FA_SUBA",
"label": "ٖ",
}

View File

@@ -1140,7 +1140,7 @@
"0x00AE": {
"group": "media",
"key": "KC_MEDIA_PLAY_PAUSE",
"label": "Mute",
"label": "Play/Pause Track",
"aliases": [
"KC_MPLY"
]

View File

@@ -84,7 +84,7 @@
"group": "midi",
"key": "QK_MIDI_NOTE_G_SHARP_0",
"aliases": [
"MI_Gs"
"MI_Gs",
"MI_Ab"
]
},
@@ -99,7 +99,7 @@
"group": "midi",
"key": "QK_MIDI_NOTE_A_SHARP_0",
"aliases": [
"MI_As"
"MI_As",
"MI_Bb"
]
},

View File

@@ -2,131 +2,131 @@
"keycodes": {
"0x7E00": {
"group": "kb",
"key": "QK_KB_0",
"key": "QK_KB_0"
},
"0x7E01": {
"group": "kb",
"key": "QK_KB_1",
"key": "QK_KB_1"
},
"0x7E02": {
"group": "kb",
"key": "QK_KB_2",
"key": "QK_KB_2"
},
"0x7E03": {
"group": "kb",
"key": "QK_KB_3",
"key": "QK_KB_3"
},
"0x7E04": {
"group": "kb",
"key": "QK_KB_4",
"key": "QK_KB_4"
},
"0x7E05": {
"group": "kb",
"key": "QK_KB_5",
"key": "QK_KB_5"
},
"0x7E06": {
"group": "kb",
"key": "QK_KB_6",
"key": "QK_KB_6"
},
"0x7E07": {
"group": "kb",
"key": "QK_KB_7",
"key": "QK_KB_7"
},
"0x7E08": {
"group": "kb",
"key": "QK_KB_8",
"key": "QK_KB_8"
},
"0x7E09": {
"group": "kb",
"key": "QK_KB_9",
"key": "QK_KB_9"
},
"0x7E0A": {
"group": "kb",
"key": "QK_KB_10",
"key": "QK_KB_10"
},
"0x7E0B": {
"group": "kb",
"key": "QK_KB_11",
"key": "QK_KB_11"
},
"0x7E0C": {
"group": "kb",
"key": "QK_KB_12",
"key": "QK_KB_12"
},
"0x7E0D": {
"group": "kb",
"key": "QK_KB_13",
"key": "QK_KB_13"
},
"0x7E0E": {
"group": "kb",
"key": "QK_KB_14",
"key": "QK_KB_14"
},
"0x7E0F": {
"group": "kb",
"key": "QK_KB_15",
"key": "QK_KB_15"
},
"0x7E10": {
"group": "kb",
"key": "QK_KB_16",
"key": "QK_KB_16"
},
"0x7E11": {
"group": "kb",
"key": "QK_KB_17",
"key": "QK_KB_17"
},
"0x7E12": {
"group": "kb",
"key": "QK_KB_18",
"key": "QK_KB_18"
},
"0x7E13": {
"group": "kb",
"key": "QK_KB_19",
"key": "QK_KB_19"
},
"0x7E14": {
"group": "kb",
"key": "QK_KB_20",
"key": "QK_KB_20"
},
"0x7E15": {
"group": "kb",
"key": "QK_KB_21",
"key": "QK_KB_21"
},
"0x7E16": {
"group": "kb",
"key": "QK_KB_22",
"key": "QK_KB_22"
},
"0x7E17": {
"group": "kb",
"key": "QK_KB_23",
"key": "QK_KB_23"
},
"0x7E18": {
"group": "kb",
"key": "QK_KB_24",
"key": "QK_KB_24"
},
"0x7E19": {
"group": "kb",
"key": "QK_KB_25",
"key": "QK_KB_25"
},
"0x7E1A": {
"group": "kb",
"key": "QK_KB_26",
},
"key": "QK_KB_26"
},
"0x7E1B": {
"group": "kb",
"key": "QK_KB_27",
"key": "QK_KB_27"
},
"0x7E1C": {
"group": "kb",
"key": "QK_KB_28",
"key": "QK_KB_28"
},
"0x7E1D": {
"group": "kb",
"key": "QK_KB_29",
"key": "QK_KB_29"
},
"0x7E1E": {
"group": "kb",
"key": "QK_KB_30",
"key": "QK_KB_30"
},
"0x7E1F": {
"group": "kb",
"key": "QK_KB_31",
},
"key": "QK_KB_31"
}
}
}

View File

@@ -86,7 +86,7 @@
"group": "midi",
"key": "QK_MIDI_NOTE_G_SHARP_0",
"aliases": [
"MI_Gs"
"MI_Gs",
"MI_Ab"
]
},
@@ -101,7 +101,7 @@
"group": "midi",
"key": "QK_MIDI_NOTE_A_SHARP_0",
"aliases": [
"MI_As"
"MI_As",
"MI_Bb"
]
},

View File

@@ -2,131 +2,131 @@
"keycodes": {
"0x7E40": {
"group": "user",
"key": "QK_USER_0",
"key": "QK_USER_0"
},
"0x7E41": {
"group": "user",
"key": "QK_USER_1",
"key": "QK_USER_1"
},
"0x7E42": {
"group": "user",
"key": "QK_USER_2",
"key": "QK_USER_2"
},
"0x7E43": {
"group": "user",
"key": "QK_USER_3",
"key": "QK_USER_3"
},
"0x7E44": {
"group": "user",
"key": "QK_USER_4",
"key": "QK_USER_4"
},
"0x7E45": {
"group": "user",
"key": "QK_USER_5",
"key": "QK_USER_5"
},
"0x7E46": {
"group": "user",
"key": "QK_USER_6",
"key": "QK_USER_6"
},
"0x7E47": {
"group": "user",
"key": "QK_USER_7",
"key": "QK_USER_7"
},
"0x7E48": {
"group": "user",
"key": "QK_USER_8",
"key": "QK_USER_8"
},
"0x7E49": {
"group": "user",
"key": "QK_USER_9",
"key": "QK_USER_9"
},
"0x7E4A": {
"group": "user",
"key": "QK_USER_10",
"key": "QK_USER_10"
},
"0x7E4B": {
"group": "user",
"key": "QK_USER_11",
"key": "QK_USER_11"
},
"0x7E4C": {
"group": "user",
"key": "QK_USER_12",
"key": "QK_USER_12"
},
"0x7E4D": {
"group": "user",
"key": "QK_USER_13",
"key": "QK_USER_13"
},
"0x7E4E": {
"group": "user",
"key": "QK_USER_14",
"key": "QK_USER_14"
},
"0x7E4F": {
"group": "user",
"key": "QK_USER_15",
"key": "QK_USER_15"
},
"0x7E50": {
"group": "user",
"key": "QK_USER_16",
"key": "QK_USER_16"
},
"0x7E51": {
"group": "user",
"key": "QK_USER_17",
"key": "QK_USER_17"
},
"0x7E52": {
"group": "user",
"key": "QK_USER_18",
"key": "QK_USER_18"
},
"0x7E53": {
"group": "user",
"key": "QK_USER_19",
"key": "QK_USER_19"
},
"0x7E54": {
"group": "user",
"key": "QK_USER_20",
"key": "QK_USER_20"
},
"0x7E55": {
"group": "user",
"key": "QK_USER_21",
"key": "QK_USER_21"
},
"0x7E56": {
"group": "user",
"key": "QK_USER_22",
"key": "QK_USER_22"
},
"0x7E57": {
"group": "user",
"key": "QK_USER_23",
"key": "QK_USER_23"
},
"0x7E58": {
"group": "user",
"key": "QK_USER_24",
"key": "QK_USER_24"
},
"0x7E59": {
"group": "user",
"key": "QK_USER_25",
"key": "QK_USER_25"
},
"0x7E5A": {
"group": "user",
"key": "QK_USER_26",
},
"key": "QK_USER_26"
},
"0x7E5B": {
"group": "user",
"key": "QK_USER_27",
"key": "QK_USER_27"
},
"0x7E5C": {
"group": "user",
"key": "QK_USER_28",
"key": "QK_USER_28"
},
"0x7E5D": {
"group": "user",
"key": "QK_USER_29",
"key": "QK_USER_29"
},
"0x7E5E": {
"group": "user",
"key": "QK_USER_30",
"key": "QK_USER_30"
},
"0x7E5F": {
"group": "user",
"key": "QK_USER_31",
},
"key": "QK_USER_31"
}
}
}

View File

@@ -0,0 +1,7 @@
{
"ranges": {
"0x52E0/0x001F": {
"define": "QK_PERSISTENT_DEF_LAYER"
}
}
}

View File

@@ -0,0 +1,115 @@
{
"ranges": {
"0x7780/0x003F": {
"define": "QK_CONNECTION"
}
}
"keycodes": {
"0x7780": {
"group": "connection",
"key": "QK_OUTPUT_AUTO",
"aliases": [
"OU_AUTO"
]
},
"0x7781": {
"group": "connection",
"key": "QK_OUTPUT_NEXT",
"aliases": [
"OU_NEXT"
]
},
"0x7782": {
"group": "connection",
"key": "QK_OUTPUT_PREV",
"aliases": [
"OU_PREV"
]
},
"0x7783": {
"group": "connection",
"key": "QK_OUTPUT_NONE",
"aliases": [
"OU_NONE"
]
},
"0x7784": {
"group": "connection",
"key": "QK_OUTPUT_USB",
"aliases": [
"OU_USB"
]
},
"0x7785": {
"group": "connection",
"key": "QK_OUTPUT_2P4GHZ",
"aliases": [
"OU_2P4G"
]
},
"0x7786": {
"group": "connection",
"key": "QK_OUTPUT_BLUETOOTH",
"aliases": [
"OU_BT"
]
},
"0x7790": {
"group": "connection",
"key": "QK_BLUETOOTH_PROFILE_NEXT",
"aliases": [
"BT_NEXT"
]
},
"0x7791": {
"group": "connection",
"key": "QK_BLUETOOTH_PROFILE_PREV",
"aliases": [
"BT_PREV"
]
},
"0x7792": {
"group": "connection",
"key": "QK_BLUETOOTH_UNPAIR",
"aliases": [
"BT_UNPR"
]
}
"0x7793": {
"group": "connection",
"key": "QK_BLUETOOTH_PROFILE1",
"aliases": [
"BT_PRF1"
]
},
"0x7794": {
"group": "connection",
"key": "QK_BLUETOOTH_PROFILE2",
"aliases": [
"BT_PRF2"
]
},
"0x7795": {
"group": "connection",
"key": "QK_BLUETOOTH_PROFILE3",
"aliases": [
"BT_PRF3"
]
},
"0x7796": {
"group": "connection",
"key": "QK_BLUETOOTH_PROFILE4",
"aliases": [
"BT_PRF4"
]
},
"0x7797": {
"group": "connection",
"key": "QK_BLUETOOTH_PROFILE5",
"aliases": [
"BT_PRF5"
]
},
}
}

View File

@@ -0,0 +1,14 @@
{
"keycodes": {
"0x7C20": "!delete!", // old QK_OUTPUT_AUTO
"0x7C21": "!delete!", // old QK_OUTPUT_USB
"0x7C22": "!delete!", // old QK_OUTPUT_BLUETOOTH
"0x7C7B": {
"group": "quantum",
"key": "QK_LAYER_LOCK",
"aliases": [
"QK_LLCK"
]
}
}
}

View File

@@ -0,0 +1,7 @@
{
"ranges": {
"0x77C0/0x003F": {
"define": "QK_COMMUNITY_MODULE"
}
}
}

View File

@@ -0,0 +1,25 @@
{
keyboard_pre_init: {
ret_type: void
args: void
}
keyboard_post_init: {
ret_type: void
args: void
}
pre_process_record: {
ret_type: bool
args: uint16_t keycode, keyrecord_t *record
call_params: keycode, record
}
process_record: {
ret_type: bool
args: uint16_t keycode, keyrecord_t *record
call_params: keycode, record
}
post_process_record: {
ret_type: void
args: uint16_t keycode, keyrecord_t *record
call_params: keycode, record
}
}

View File

@@ -0,0 +1,26 @@
{
housekeeping_task: {
ret_type: void
args: void
}
suspend_power_down: {
ret_type: void
args: void
}
suspend_wakeup_init: {
ret_type: void
args: void
}
shutdown: {
ret_type: bool
args: bool jump_to_bootloader
call_params: jump_to_bootloader
}
process_detected_host_os: {
ret_type: bool
args: os_variant_t os
call_params: os
guard: defined(OS_DETECTION_ENABLE)
header: os_detection.h
}
}

View File

@@ -84,6 +84,11 @@
"board": "STEMCELL",
"bootloader": "tinyuf2",
"processor": "STM32F411"
},
"svlinky": {
"board": "QMK_PM2040",
"bootloader": "rp2040",
"processor": "RP2040"
}
}
}

View File

@@ -64,6 +64,9 @@
"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},
// Layer locking
"LAYER_LOCK_IDLE_TIMEOUT": {"info_key": "layer_lock.timeout", "value_type": "int"},
// Indicators
"LED_CAPS_LOCK_PIN": {"info_key": "indicators.caps_lock"},
"LED_NUM_LOCK_PIN": {"info_key": "indicators.num_lock"},
@@ -197,6 +200,7 @@
"SPLIT_WPM_ENABLE": {"info_key": "split.transport.sync.wpm", "value_type": "flag"},
// Tapping
"CHORDAL_HOLD": {"info_key": "tapping.chordal_hold", "value_type": "flag"},
"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"},

View File

@@ -55,5 +55,6 @@
// Items we want flagged in lint
"CTPC": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"},
"CONVERT_TO_PROTON_C": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"},
"DEFAULT_FOLDER": {"info_key": "_deprecated.default_folder", "deprecated": true},
"VIAL_ENABLE": {"info_key": "_invalid.vial", "invalid": true}
}

View File

@@ -140,6 +140,9 @@
"custommk/genesis": {
"target": "custommk/genesis/rev1"
},
"cxt_studio":{
"target":"cxt_studio/12e4"
},
"daisy": {
"target": "ktec/daisy"
},
@@ -194,6 +197,9 @@
"ergodone": {
"target": "ktec/ergodone"
},
"ergodox_stm32": {
"target": "handwired/ergodox_stm32"
},
"ergoinu": {
"target": "dm9records/ergoinu"
},
@@ -563,6 +569,15 @@
"plain60": {
"target": "evyd13/plain60"
},
"planck/ez": {
"target": "zsa/planck_ez/base"
},
"planck/ez/base": {
"target": "zsa/planck_ez/base"
},
"planck/ez/glow": {
"target": "zsa/planck_ez/glow"
},
"ploopyco/trackball": {
"target": "ploopyco/trackball/rev1_005"
},
@@ -1356,6 +1371,12 @@
"runner3680/5x8": {
"target": "omkbd/runner3680/5x8"
},
"saevus/cor": {
"target": "concreteflowers/cor"
},
"saevus/cor_tkl": {
"target": "concreteflowers/cor_tkl"
},
"scarletbandana": {
"target": "woodkeys/scarletbandana"
},
@@ -1500,6 +1521,9 @@
"ymd96": {
"target": "ymdk/ymd96"
},
"ymdk/id75": {
"target": "ymdk/id75/f103"
},
"ymdk_np21": {
"target": "ymdk/np21"
},
@@ -1537,5 +1561,687 @@
},
"dnworks/9973": {
"target": "dnworks/tkl87"
},
// DEFAULT_FOLDER removed during 2025 Q1 cycle
"0_sixty": {
"target": "0_sixty/base"
},
"0xcb/splaytoraid": {
"target": "0xcb/splaytoraid/rp2040_ce"
},
"1upkeyboards/pi40": {
"target": "1upkeyboards/pi40/mit_v1_0"
},
"1upkeyboards/pi50": {
"target": "1upkeyboards/pi50/grid"
},
"1upkeyboards/sweet16": {
"target": "1upkeyboards/sweet16/v1"
},
"25keys/aleth42": {
"target": "25keys/aleth42/rev1"
},
"25keys/zinc": {
"target": "25keys/zinc/rev1"
},
"40percentclub/i75": {
"target": "40percentclub/i75/promicro"
},
"40percentclub/polyandry": {
"target": "40percentclub/polyandry/promicro"
},
"8pack": {
"target": "8pack/rev12"
},
"adkb96": {
"target": "adkb96/rev1"
},
"adm42": {
"target": "adm42/rev4"
},
"aeboards/satellite": {
"target": "aeboards/satellite/rev1"
},
"atreus": {
"target": "atreus/astar"
},
"atreyu": {
"target": "atreyu/rev1"
},
"biacco42/ergo42": {
"target": "biacco42/ergo42/rev1"
},
"binepad/bn009": {
"target": "binepad/bn009/r2"
},
"binepad/bnr1": {
"target": "binepad/bnr1/v2"
},
"boston_meetup": {
"target": "boston_meetup/2019"
},
"bpiphany/frosty_flake": {
"target": "bpiphany/frosty_flake/20140521"
},
"buzzard": {
"target": "buzzard/rev1"
},
"cannonkeys/db60": {
"target": "cannonkeys/db60/rev2"
},
"clickety_split/leeloo": {
"target": "clickety_split/leeloo/rev3"
},
"converter/palm_usb": {
"target": "converter/palm_usb/stowaway"
},
"crkbd": {
"target": "crkbd/rev1"
},
"dailycraft/bat43": {
"target": "dailycraft/bat43/rev2"
},
"dailycraft/claw44": {
"target": "dailycraft/claw44/rev1"
},
"dailycraft/sandbox": {
"target": "dailycraft/sandbox/rev2"
},
"dailycraft/wings42": {
"target": "dailycraft/wings42/rev2"
},
"delikeeb/vanana": {
"target": "delikeeb/vanana/rev2"
},
"delikeeb/waaffle/rev3": {
"target": "delikeeb/waaffle/rev3/pro_micro"
},
"deltasplit75": {
"target": "deltasplit75/v2"
},
"drhigsby/ogurec": {
"target": "drhigsby/ogurec/left_pm"
},
"duck/octagon": {
"target": "duck/octagon/v2"
},
"duck/orion": {
"target": "duck/orion/v3"
},
"ducky/one2mini": {
"target": "ducky/one2mini/1861st"
},
"ducky/one2sf": {
"target": "ducky/one2sf/1967st"
},
"dumbpad": {
"target": "dumbpad/v0x"
},
"durgod/galaxy": {
"target": "durgod/dgk6x/galaxy"
},
"durgod/venus": {
"target": "durgod/dgk6x/venus"
},
"dztech/tofu/ii": {
"target": "dztech/tofu/ii/v1"
},
"dztech/tofu/jr": {
"target": "dztech/tofu/jr/v1"
},
"eco": {
"target": "eco/rev2"
},
"ergoslab": {
"target": "ergoslab/rev1"
},
"ergotravel": {
"target": "ergotravel/rev1"
},
"evyd13/atom47": {
"target": "evyd13/atom47/rev4"
},
"fortitude60": {
"target": "fortitude60/rev1"
},
"fruitykeeb/fruitbar/r1": {
"target": "fruitykeeb/fruitbar/r1/promicro"
},
"ghs/jem": {
"target": "ghs/jem/soldered"
},
"hadron": {
"target": "hadron/ver2"
},
"handwired/bento": {
"target": "handwired/bento/rev1"
},
"handwired/dactyl_manuform/6x6": {
"target": "handwired/dactyl_manuform/6x6/promicro"
},
"handwired/meck_tkl": {
"target": "handwired/meck_tkl/blackpill_f401"
},
"handwired/ms_sculpt_mobile": {
"target": "handwired/ms_sculpt_mobile/teensy2pp"
},
"handwired/onekey": {
"target": "handwired/onekey/promicro"
},
"handwired/pill60": {
"target": "handwired/pill60/bluepill"
},
"handwired/postageboard": {
"target": "handwired/postageboard/mini"
},
"handwired/qc60": {
"target": "handwired/qc60/proto"
},
"handwired/sono1": {
"target": "handwired/sono1/t2pp"
},
"handwired/splittest": {
"target": "handwired/splittest/promicro"
},
"handwired/stef9998/split_5x7": {
"target": "handwired/stef9998/split_5x7/rev1"
},
"handwired/symmetric70_proto/promicro": {
"target": "handwired/symmetric70_proto/promicro/base"
},
"handwired/symmetric70_proto/proton_c": {
"target": "handwired/symmetric70_proto/proton_c/base"
},
"handwired/unk": {
"target": "handwired/unk/rev1"
},
"handwired/xealous": {
"target": "handwired/xealous/rev1"
},
"hillside/46": {
"target": "hillside/46/0_1"
},
"hhkb/ansi": {
"target": "hhkb/ansi/32u4"
},
"hillside/48": {
"target": "hillside/48/0_1"
},
"hillside/52": {
"target": "hillside/52/0_1"
},
"ibnuda/squiggle": {
"target": "ibnuda/squiggle/rev1"
},
"idobao/id80/v1": {
"target": "idobao/id80/v2/ansi"
},
"idobao/id80/v3": {
"target": "idobao/id80/v3/ansi"
},
"inett_studio/sq80": {
"target": "inett_studio/sq80/hotswap_layout_i"
},
"input_club/infinity60": {
"target": "input_club/infinity60/led"
},
"jacky_studio/bear_65": {
"target": "jacky_studio/bear_65/rev1"
},
"jacky_studio/piggy60/rev1": {
"target": "jacky_studio/piggy60/rev1/solder"
},
"jadookb/jkb65": {
"target": "jadookb/jkb65/r1"
},
"jian": {
"target": "jian/rev2"
},
"jiran": {
"target": "jiran/rev1"
},
"jorne": {
"target": "jorne/rev1"
},
"junco": {
"target": "junco/rev1"
},
"kakunpc/angel17": {
"target": "kakunpc/angel17/rev1"
},
"kakunpc/angel64": {
"target": "kakunpc/angel64/rev1"
},
"kakunpc/business_card": {
"target": "kakunpc/business_card/beta"
},
"kakunpc/suihankey": {
"target": "kakunpc/suihankey/rev1"
},
"kakunpc/suihankey/split": {
"target": "kakunpc/suihankey/split/rev1"
},
"kapcave/paladinpad": {
"target": "kapcave/paladinpad/rev2"
},
"kapl": {
"target": "kapl/rev1"
},
"kbdfans/d45": {
"target": "kbdfans/d45/v2"
},
"kbdfans/kbd75": {
"target": "kbdfans/kbd75/rev1"
},
"keebio/bdn9": {
"target": "keebio/bdn9/rev1"
},
"keebio/convolution": {
"target": "keebio/convolution/rev1"
},
"keebio/foldkb": {
"target": "keebio/foldkb/rev1"
},
"keebio/kbo5000": {
"target": "keebio/kbo5000/rev1"
},
"keebio/levinson": {
"target": "keebio/levinson/rev2"
},
"keebio/quefrency": {
"target": "keebio/quefrency/rev1"
},
"keebio/rorschach": {
"target": "keebio/rorschach/rev1"
},
"keebio/sinc": {
"target": "keebio/sinc/rev1"
},
"keebio/viterbi": {
"target": "keebio/viterbi/rev2"
},
"keycapsss/kimiko": {
"target": "keycapsss/kimiko/rev2"
},
"keyhive/navi10": {
"target": "keyhive/navi10/rev3"
},
"keyhive/uno": {
"target": "keyhive/uno/rev1"
},
"kin80": {
"target": "kin80/blackpill401"
},
"kumaokobo/kudox_full": {
"target": "kumaokobo/kudox_full/rev1"
},
"kumaokobo/kudox_game": {
"target": "kumaokobo/kudox_game/rev2"
},
"kumaokobo/kudox": {
"target": "kumaokobo/kudox/rev3"
},
"kumaokobo/pico": {
"target": "kumaokobo/pico/65keys"
},
"lazydesigners/dimple": {
"target": "lazydesigners/dimple/staggered/rev1"
},
"lets_split": {
"target": "lets_split/rev2"
},
"lfkeyboards/lfk87": {
"target": "lfkeyboards/lfk78/revc"
},
"lily58": {
"target": "lily58/rev1"
},
"lime": {
"target": "lime/rev1"
},
"maple_computing/christmas_tree": {
"target": "maple_computing/christmas_tree/v2017"
},
"maple_computing/ivy": {
"target": "maple_computing/ivy/rev1"
},
"maple_computing/launchpad": {
"target": "maple_computing/launchpad/rev1"
},
"maple_computing/minidox": {
"target": "maple_computing/minidox/rev1"
},
"mariorion_v25": {
"target": "mariorion_v25/prod"
},
"marksard/rhymestone": {
"target": "marksard/rhymestone/rev1"
},
"marksard/treadstone32": {
"target": "marksard/treadstone32/rev1"
},
"marksard/treadstone48": {
"target": "marksard/treadstone48/rev1"
},
"maxipad": {
"target": "maxipad/promicro"
},
"mechkeys/mechmini": {
"target": "mechkeys/mechmini/v2"
},
"mechllama/g35": {
"target": "mechllama/g35/v2"
},
"mechlovin/adelais": {
"target": "mechlovin/adelais/standard_led/arm/rev2"
},
"mechlovin/adelais/standard_led/arm/rev4": {
"target": "mechlovin/adelais/standard_led/arm/rev4/stm32f303"
},
"mechlovin/adelais/standard_led/arm": {
"target": "mechlovin/adelais/standard_led/arm/rev2"
},
"mechlovin/adelais/standard_led/avr": {
"target": "mechlovin/adelais/standard_led/avr/rev1"
},
"mechlovin/hannah65/rev1": {
"target": "mechlovin/hannah65/rev1/haus"
},
"mechlovin/infinity87/rev1": {
"target": "mechlovin/infinity87/rev1/standard"
},
"mechlovin/infinity87": {
"target": "mechlovin/infinity87/rgb_rev1"
},
"mechlovin/mechlovin9": {
"target": "mechlovin/mechlovin9/rev1"
},
"mechlovin/olly/jf": {
"target": "mechlovin/olly/jf/rev1"
},
"mechlovin/zed1800": {
"target": "mechlovin/zed1800/saber"
},
"mechlovin/zed65/no_backlight": {
"target": "mechlovin/zed65/no_backlight/wearhaus66"
},
"mechlovin/zed65": {
"target": "mechlovin/zed65/no_backlight/wearhaus66"
},
"mechwild/bde": {
"target": "mechwild/bde/rev2"
},
"mechwild/mokulua": {
"target": "mechwild/mokulua/standard"
},
"mechwild/obe/f401": {
"target": "mechwild/obe/f401/base"
},
"mechwild/obe/f411": {
"target": "mechwild/obe/f411/base"
},
"mechwild/obe": {
"target": "mechwild/obe/f401/base"
},
"mechwild/waka60/f401": {
"target": "mechwild/waka60/f401/base"
},
"mechwild/waka60/f411": {
"target": "mechwild/waka60/f411/base"
},
"mechwild/waka60": {
"target": "mechwild/waka60/f401/base"
},
"murcielago": {
"target": "murcielago/rev1"
},
"nullbitsco/scramble": {
"target": "nullbitsco/scramble/v2"
},
"omkbd/ergodash": {
"target": "omkbd/ergodash/rev1"
},
"omkbd/runner3680": {
"target": "omkbd/runner3680/5x8"
},
"orthodox": {
"target": "orthodox/rev3"
},
"peej/rosaline": {
"target": "peej/rosaline/staggered"
},
"peej/tripel": {
"target": "peej/tripel/left"
},
"peranekofactory/tone": {
"target": "peranekofactory/tone/rev2"
},
"phase_studio/titan65": {
"target": "phase_studio/titan65/hotswap"
},
"pica40": {
"target": "pica40/rev2"
},
"pinky": {
"target": "pinky/3"
},
"ploopyco/madromys": {
"target": "ploopyco/madromys/rev1_001"
},
"ploopyco/trackball_mini": {
"target": "ploopyco/trackball_mini/rev1_001"
},
"ploopyco/trackball_nano": {
"target": "ploopyco/trackball_nano/rev1_001"
},
"ploopyco/trackball_thumb": {
"target": "ploopyco/trackball_thumb/rev1_001"
},
"primekb/meridian": {
"target": "primekb/meridian/ktr1010"
},
"primekb/prime_e": {
"target": "primekb/prime_e/std"
},
"program_yoink": {
"target": "program_yoink/staggered"
},
"projectcain/vault35": {
"target": "projectcain/vault35/atmega32u4"
},
"qpockets/space_space": {
"target": "qpockets/space_space/rev2"
},
"qwertyydox": {
"target": "qwertyydox/rev1"
},
"rate/pistachio": {
"target": "rate/pistachio/rev2"
},
"recompile_keys/choco60": {
"target": "recompile_keys/choco60/rev1"
},
"recompile_keys/nomu30": {
"target": "recompile_keys/nomu30/rev1"
},
"redox/rev1": {
"target": "redox/rev1/base"
},
"rgbkb/mun": {
"target": "rgbkb/mun/rev1"
},
"rgbkb/sol3": {
"target": "rgbkb/sol3/rev1"
},
"rgbkb/sol": {
"target": "rgbkb/sol/rev2"
},
"rgbkb/zen": {
"target": "rgbkb/zen/rev2"
},
"rgbkb/zygomorph": {
"target": "rgbkb/zygomorph/rev1"
},
"rmi_kb/herringbone": {
"target": "rmi_kb/herringbone/v1"
},
"rmi_kb/mona": {
"target": "rmi_kb/mona/v1_1"
},
"rmi_kb/tkl_ff": {
"target": "rmi_kb/tkl_ff/v1"
},
"rmi_kb/wete": {
"target": "rmi_kb/wete/v2"
},
"rookiebwoy/late9": {
"target": "rookiebwoy/late9/rev1"
},
"rookiebwoy/neopad": {
"target": "rookiebwoy/neopad/rev1"
},
"rura66": {
"target": "rura66/rev1"
},
"salicylic_acid3/7skb": {
"target": "salicylic_acid3/7skb/rev1"
},
"salicylic_acid3/getta25": {
"target": "salicylic_acid3/getta25/rev1"
},
"salicylic_acid3/jisplit89": {
"target": "salicylic_acid3/jisplit89/rev1"
},
"salicylic_acid3/naked48": {
"target": "salicylic_acid3/naked48/rev1"
},
"salicylic_acid3/naked60": {
"target": "salicylic_acid3/naked60/rev1"
},
"salicylic_acid3/naked64": {
"target": "salicylic_acid3/naked64/rev1"
},
"salicylic_acid3/setta21": {
"target": "salicylic_acid3/setta21/rev1"
},
"sawnsprojects/okayu": {
"target": "sawnsprojects/okayu/stm32f072"
},
"smoll/lefty": {
"target": "smoll/lefty/rev2"
},
"sofle": {
"target": "sofle/rev1"
},
"spaceholdings/nebula68b": {
"target": "spaceholdings/nebula68b/solder"
},
"spacetime": {
"target": "spacetime/rev1"
},
"splitkb/aurora/corne": {
"target": "splitkb/aurora/corne/rev1"
},
"splitkb/aurora/helix": {
"target": "splitkb/aurora/helix/rev1"
},
"splitkb/aurora/lily58": {
"target": "splitkb/aurora/lily58/rev1"
},
"splitkb/aurora/sofle_v2": {
"target": "splitkb/aurora/sofle_v2/rev1"
},
"splitkb/aurora/sweep": {
"target": "splitkb/aurora/sweep/rev1"
},
"splitkb/kyria": {
"target": "splitkb/kyria/rev3"
},
"splitkb/kyria/rev1": {
"target": "splitkb/kyria/rev1/base"
},
"splitkb/kyria/rev2": {
"target": "splitkb/kyria/rev2/base"
},
"splitty": {
"target": "splitty/rev1"
},
"studiokestra/galatea": {
"target": "studiokestra/galatea/rev1"
},
"takashiski/hecomi": {
"target": "takashiski/hecomi/alpha"
},
"takashiski/namecard2x4": {
"target": "takashiski/namecard2x4/rev2"
},
"teleport/native": {
"target": "teleport/native/iso"
},
"themadnoodle/noodlepad": {
"target": "themadnoodle/noodlepad/v1"
},
"tkw/grandiceps": {
"target": "tkw/grandiceps/rev1"
},
"tominabox1/le_chiffre": {
"target": "tominabox1/le_chiffre/rev1"
},
"tominabox1/littlefoot_lx": {
"target": "tominabox1/littlefoot_lx/rev1"
},
"tominabox1/underscore33": {
"target": "tominabox1/underscore33/rev1"
},
"trnthsn/e8ghty": {
"target": "trnthsn/e8ghty/stm32f103"
},
"trnthsn/s6xty5neor2": {
"target": "trnthsn/s6xty5neor2/stm32f103"
},
"tweetydabird/lotus58": {
"target": "tweetydabird/lotus58/promicro"
},
"unison": {
"target": "unison/v04"
},
"uzu42": {
"target": "uzu42/rev1"
},
"vitamins_included": {
"target": "vitamins_included/rev2"
},
"westm/westm68": {
"target": "westm/westm68/rev2"
},
"westm/westm9": {
"target": "westm/westm9/rev2"
},
"woodkeys/meira": {
"target": "woodkeys/meira/promicro"
},
"work_louder/loop": {
"target": "work_louder/loop/rev3"
},
"work_louder/work_board": {
"target": "work_louder/work_board/rev3"
},
"yanghu/unicorne": {
"target": "yanghu/unicorne/f411"
},
"yosino58": {
"target": "yosino58/rev1"
},
"ymdk/yd60mq": {
"target": "ymdk/yd60mq/12led"
},
"yushakobo/navpad/10": {
"target": "yushakobo/navpad/10/rev1"
},
"yynmt/acperience12": {
"target": "yynmt/acperience12/rev1"
},
"zsa/planck_ez": {
"target": "zsa/planck_ez/base"
}
}

View File

@@ -0,0 +1,17 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema#",
"$id": "qmk.community_module.v1",
"title": "Community Module Information",
"type": "object",
"required": ["module_name", "maintainer"]
"properties": {
"module_name": {"$ref": "qmk.definitions.v1#/text_identifier"},
"maintainer": {"$ref": "qmk.definitions.v1#/text_identifier"},
"url": {
"type": "string",
"format": "uri"
},
"keycodes": {"$ref": "qmk.definitions.v1#/keycode_decl_array"},
"features": {"$ref": "qmk.keyboard.v1#/definitions/features_config"},
}
}

View File

@@ -16,12 +16,6 @@
"type": "object",
"additionalProperties": {"type": "boolean"}
},
"build_target": {
"oneOf": [
{"$ref": "#/keyboard_keymap_tuple"},
{"$ref": "#/json_file_path"}
]
},
"filename": {
"type": "string",
"minLength": 1,
@@ -53,6 +47,19 @@
{"$ref": "#/keyboard"},
{"$ref": "#/filename"}
],
"minItems": 2,
"maxItems": 2,
"unevaluatedItems": false
},
"keyboard_keymap_env": {
"type": "array",
"prefixItems": [
{"$ref": "#/keyboard"},
{"$ref": "#/filename"},
{"$ref": "#/kvp_object"}
],
"minItems": 3,
"maxItems": 3,
"unevaluatedItems": false
},
"keycode": {
@@ -87,6 +94,10 @@
"maxLength": 7,
"pattern": "^[A-Z][A-Zs_0-9]*$"
},
"kvp_object": {
"type": "object",
"additionalProperties": {"type": "string"}
},
"layout_macro": {
"oneOf": [
{

View File

@@ -31,6 +31,11 @@
"pins": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
}
}
"features_config": {
"$ref": "qmk.definitions.v1#/boolean_array",
"propertyNames": {"$ref": "qmk.definitions.v1#/snake_case"},
"not": {"required": ["lto"]}
},
},
"type": "object",
"not": {"required": ["vendorId", "productId"]}, // reject via keys...
@@ -45,7 +50,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", "imera"]
"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", "svlinky"]
},
"pin_compatible": {
"type": "string",
@@ -92,6 +97,7 @@
"GD32VF103",
"WB32F3G71",
"WB32FQ95",
"AT32F415",
"atmega16u2",
"atmega32u2",
"atmega16u4",
@@ -216,6 +222,7 @@
"type": "string",
"enum": [
"apm32-dfu",
"at32-dfu",
"atmel-dfu",
"bootloadhid",
"caterina",
@@ -326,11 +333,7 @@
"enabled": {"type": "boolean"}
}
},
"features": {
"$ref": "qmk.definitions.v1#/boolean_array",
"propertyNames": {"$ref": "qmk.definitions.v1#/snake_case"},
"not": {"required": ["lto"]}
},
"features": { "$ref": "#/definitions/features_config" },
"indicators": {
"type": "object",
"properties": {
@@ -373,6 +376,12 @@
}
},
"keycodes": {"$ref": "qmk.definitions.v1#/keycode_decl_array"},
"layer_lock": {
"type": "object",
"properties": {
"timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
}
},
"layout_aliases": {
"type": "object",
"additionalProperties": {"$ref": "qmk.definitions.v1#/layout_macro"}
@@ -414,7 +423,11 @@
"h": {"$ref": "qmk.definitions.v1#/key_unit"},
"w": {"$ref": "qmk.definitions.v1#/key_unit"},
"x": {"$ref": "qmk.definitions.v1#/key_unit"},
"y": {"$ref": "qmk.definitions.v1#/key_unit"}
"y": {"$ref": "qmk.definitions.v1#/key_unit"},
"hand": {
"type": "string",
"enum": ["L", "R", "*"]
}
}
}
}
@@ -455,6 +468,12 @@
"rows": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
}
},
"modules": {
"type": "array",
"items": {
"type": "string"
}
},
"mouse_key": {
"type": "object",
"properties": {
@@ -907,6 +926,7 @@
"tapping": {
"type": "object",
"properties": {
"chordal_hold": {"type": "boolean"},
"force_hold": {"type": "boolean"},
"force_hold_per_key": {"type": "boolean"},
"ignore_mod_tap_interrupt": {"type": "boolean"},

View File

@@ -71,11 +71,12 @@
"config": {"$ref": "qmk.keyboard.v1"},
"notes": {
"type": "string"
},
"modules": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"keyboard",
"layout",
"layers"
]
}
}

View File

@@ -3,6 +3,14 @@
"$id": "qmk.user_repo.v1",
"title": "User Repository Information",
"type": "object",
"definitions": {
"build_target": {
"oneOf": [
{"$ref": "qmk.definitions.v1#/keyboard_keymap_tuple"},
{"$ref": "qmk.definitions.v1#/json_file_path"}
]
},
},
"required": [
"userspace_version",
"build_targets"
@@ -15,7 +23,7 @@
"build_targets": {
"type": "array",
"items": {
"$ref": "qmk.definitions.v1#/build_target"
"$ref": "#/definitions/build_target"
}
}
}

View File

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

198
docs/ChangeLog/20240825.md Normal file
View File

@@ -0,0 +1,198 @@
# QMK Breaking Changes - 2024 August 25 Changelog
## Notable Features
August 2024 brings another maintenance release of QMK. Almost all PRs this cycle were to do with cleanup or re-organization of existing features and code.
One key item is that there are no longer any `via`-enabled keymaps in the QMK repository -- these have all transitioned to an [External Userspace](../newbs_external_userspace) repository under the VIA team's control. Going forward, all PRs to `qmk_firmware` must not contain `via` keymaps; these should instead be redirected to the [VIA QMK Userspace](https://github.com/the-via/qmk_userspace_via) repository.
## Changes Requiring User Action
### Updated Keyboard Codebases
One note with updated keyboard names -- historical keyboard names are still considered valid when using [External Userspace](../newbs_external_userspace) 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 |
|----------------------------------|-------------------------------|
| dnworks/9973 | dnworks/tkl87 |
| maple_computing/lets_split_eh/eh | maple_computing/lets_split_eh |
| planck/ez/base | zsa/planck_ez/base |
### SparkFun Pro Micro RP2040 converter renamed ([#24192](https://github.com/qmk/qmk_firmware/pull/24192))
The converter for the SparkFun Pro Micro RP2040 has been renamed.
| Old | New |
|-------------------|-------------------|
| `promicro_rp2040` | `sparkfun_rp2040` |
This change was made to avoid confusion between the clones named ProMicro RP2040 and the SparkFun Pro Micro RP2040. The clones should be using the `rp2040_ce` option.
### Key Override `keymap.c` signature change ([#24120](https://github.com/qmk/qmk_firmware/pull/24120))
Changes were made to key overrides in order to hook them into the keymap introspection system.
If you're using key overrides, your `keymap.c` will need a change to the signature of your list of key overrides, as well as removing the `NULL` terminator.
For example, you'll need to change existing code from (note the highlighted lines):
```c{1,4-5}
const key_override_t **key_overrides = (const key_override_t *[]){
&my_override_1,
&my_override_2,
NULL
};
```
to:
```c{1,4}
const key_override_t *key_overrides[] = {
&my_override_1,
&my_override_2,
};
```
### ADNS9800 and PMW33xx firmware upload now opt-in ([#24001](https://github.com/qmk/qmk_firmware/pull/24001))
Due to ambiguity with licensing compatibility, QMK has made the firmware ROM uploads for the ADNS9800 and PMW33xx lines of pointing device sensors temporarily opt-in with the view to removing them. Historically they were included by default, but as of this PR this is now no longer the case.
Please get in touch with the QMK team if your sensor no longer functions without the firmware upload -- so far we've tested each device type and they still seem to function without a new firmware, but this has not been a 100% exhaustive validation.
To re-enable firmware upload for your own builds, add the following to your keymap's `config.h`:
| Sensor | Define |
|----------|--------------------------------|
| ADNS9800 | `#define ADNS9800_UPLOAD_SROM` |
| PMW33xx | `#define PMW33XX_UPLOAD_SROM` |
:::info Note
If no issues arise during this current breaking changes cycle, these sensor firmware ROMs will be removed from QMK entirely.
:::
## Deprecation Notices
In line with the [notice period](../support_deprecation_policy#how-much-advance-notice-will-be-given), deprecation notices for larger items are listed here.
### Migration of VIA keymaps to VIA team control
Last breaking changes cycle, the QMK team informed that [`via` keymaps are moving](./20240526#migration-of-via-keymaps-to-via-team-control) to the control of the VIA team. As of this merge, any `via`-enabled keymaps should now be PR'ed to the [VIA QMK Userspace](https://github.com/the-via/qmk_userspace_via) repository.
Any existing or newly-opened PRs against `qmk_firmware` will now be asked to remove any `via`-enabled keymaps from their submissions.
### ADNS9800 and PMW33xx sensor firmware ROM removal
As mentioned above, there's license compatibility issues between QMK and the firmware blobs historically uploaded for the ADNS9800 and PMW33xx sensors. This notice is to inform users that these firmware blobs will almost certainly be removed from QMK in the next breaking changes merge.
As previously noted this does not seem to have any detrimental effect to any of those devices, as they seem to include firmware on-chip without requiring one to be uploaded. Please get in touch with the QMK team on Discord if your sensor is no longer functional.
## Full changelist
Core:
* EEPROM: Don't erase if we don't have to. Adding eeprom_driver_format abstraction. ([#18332](https://github.com/qmk/qmk_firmware/pull/18332))
* Generate keymap dd keycodes to header ([#20273](https://github.com/qmk/qmk_firmware/pull/20273))
* [wear_leveling] efl updates ([#22489](https://github.com/qmk/qmk_firmware/pull/22489))
* GC9xxx LCD family drivers (GC9107 and GC9A01) ([#23091](https://github.com/qmk/qmk_firmware/pull/23091))
* [build_test] set CONSOLE_ENABLE=yes if DEBUG > 0 ([#23097](https://github.com/qmk/qmk_firmware/pull/23097))
* Enhance overlapping mouse keys control ([#23341](https://github.com/qmk/qmk_firmware/pull/23341))
* APA102: API rework ([#23355](https://github.com/qmk/qmk_firmware/pull/23355))
* [WIP] Adds bus acquire/release semantics to SPI start/stop. ([#23439](https://github.com/qmk/qmk_firmware/pull/23439))
* add farsi keymap extras ([#23650](https://github.com/qmk/qmk_firmware/pull/23650))
* Update atomic GPIO macros in keyboard custom matrix ([#23796](https://github.com/qmk/qmk_firmware/pull/23796))
* Check LED flags for Pixel Fractal effect ([#23881](https://github.com/qmk/qmk_firmware/pull/23881))
* Add STM32F405RG ld script for tinyuf2 ([#23885](https://github.com/qmk/qmk_firmware/pull/23885))
* SPI flash API cleanup, add async erase capability. ([#23894](https://github.com/qmk/qmk_firmware/pull/23894))
* Add process_keycode handlers for new RGB Matrix and Underglow keycodes ([#23896](https://github.com/qmk/qmk_firmware/pull/23896))
* Decouple VIA from STM32 L0/L1 EEPROM implementation ([#23901](https://github.com/qmk/qmk_firmware/pull/23901))
* Normalise mouse keycodes ([#23975](https://github.com/qmk/qmk_firmware/pull/23975))
* Remove deprecated `led_set_user` ([#23979](https://github.com/qmk/qmk_firmware/pull/23979))
* Change ADNS9800 and PMW33XX SROM uploads to opt in. ([#24001](https://github.com/qmk/qmk_firmware/pull/24001))
* Rename encoder pins defines ([#24003](https://github.com/qmk/qmk_firmware/pull/24003))
* Change suspend condition check order on ChibiOS ([#24020](https://github.com/qmk/qmk_firmware/pull/24020))
* Tap dance introspection ([#24049](https://github.com/qmk/qmk_firmware/pull/24049))
* Allow overriding `get_hardware_id()`. ([#24051](https://github.com/qmk/qmk_firmware/pull/24051))
* Align LUFA suspend logic ([#24055](https://github.com/qmk/qmk_firmware/pull/24055))
* Add support for key override introspection. ([#24120](https://github.com/qmk/qmk_firmware/pull/24120))
* Dynamic macro callbacks ([#24142](https://github.com/qmk/qmk_firmware/pull/24142))
* Rename promicro_rp2040 converter to sparkfun_pm2040 ([#24192](https://github.com/qmk/qmk_firmware/pull/24192))
* Refactor starlight RGB matrix effects ([#24202](https://github.com/qmk/qmk_firmware/pull/24202))
* Refactor riverflow RGB matrix loop ([#24203](https://github.com/qmk/qmk_firmware/pull/24203))
CLI:
* Remove handling of keyboard level keymap templates ([#24234](https://github.com/qmk/qmk_firmware/pull/24234))
* Small tweaks to keymap generation ([#24240](https://github.com/qmk/qmk_firmware/pull/24240))
Keyboards:
* refactor: keyboard/ncr80/r2 ([#22670](https://github.com/qmk/qmk_firmware/pull/22670))
* Implement data driven joysticks ([#22947](https://github.com/qmk/qmk_firmware/pull/22947))
* Whitefacemountain Ampersand ([#23437](https://github.com/qmk/qmk_firmware/pull/23437))
* Add TRKeyboard TRK1 keyboard ([#23642](https://github.com/qmk/qmk_firmware/pull/23642))
* Rename dnworks/9973 to dnworks/tkl87 ([#23692](https://github.com/qmk/qmk_firmware/pull/23692))
* Update Underglow keycodes ([#23765](https://github.com/qmk/qmk_firmware/pull/23765))
* Add boardsource/the_q ([#23782](https://github.com/qmk/qmk_firmware/pull/23782))
* BastardKB: remove legacy board `tbk` ([#23818](https://github.com/qmk/qmk_firmware/pull/23818))
* Update ZSA Moonlander ([#23911](https://github.com/qmk/qmk_firmware/pull/23911))
* Move Planck EZ to ZSA vendor folder ([#23917](https://github.com/qmk/qmk_firmware/pull/23917))
* Migrate SPLIT_HAND_PIN to json ([#23924](https://github.com/qmk/qmk_firmware/pull/23924))
* Migrate SERIAL_DRIVER to json ([#23925](https://github.com/qmk/qmk_firmware/pull/23925))
* Migrate RGB Matrix layout for two boards ([#23963](https://github.com/qmk/qmk_firmware/pull/23963))
* Migrate `led_update_kb` implementations to DD ([#23980](https://github.com/qmk/qmk_firmware/pull/23980))
* Migrate `led_update_kb` implementations to DD ([#23981](https://github.com/qmk/qmk_firmware/pull/23981))
* Migrate `led_update_kb` implementations to DD ([#23983](https://github.com/qmk/qmk_firmware/pull/23983))
* Migrate `led_update_kb` implementations to DD ([#23985](https://github.com/qmk/qmk_firmware/pull/23985))
* Relocate m256wh VIA logic ([#24006](https://github.com/qmk/qmk_firmware/pull/24006))
* Relocate winry315 VIA logic ([#24008](https://github.com/qmk/qmk_firmware/pull/24008))
* Relocate m256ws VIA logic ([#24009](https://github.com/qmk/qmk_firmware/pull/24009))
* `atreus`: misc cleanups ([#24010](https://github.com/qmk/qmk_firmware/pull/24010))
* Relocate work_louder VIA logic ([#24011](https://github.com/qmk/qmk_firmware/pull/24011))
* Relocate xelus/pachi/rgb/rev2 VIA logic ([#24016](https://github.com/qmk/qmk_firmware/pull/24016))
* Remove custom keycodes from nullbitsco/snap ([#24017](https://github.com/qmk/qmk_firmware/pull/24017))
* added bear_face/v3 ([#24032](https://github.com/qmk/qmk_firmware/pull/24032))
* Remove DEFAULT_FOLDER from maple_computing/lets_split_eh ([#24054](https://github.com/qmk/qmk_firmware/pull/24054))
* refactor bear_face/v1, v2 ([#24060](https://github.com/qmk/qmk_firmware/pull/24060))
* Convert `eeconfig_init_kb` implementations to config ([#24087](https://github.com/qmk/qmk_firmware/pull/24087))
* Remove broken keymap from keebio/iris ([#24094](https://github.com/qmk/qmk_firmware/pull/24094))
* Move LED Matrix LED config to data driven ([#24122](https://github.com/qmk/qmk_firmware/pull/24122))
* Move split.soft_serial_pin to split.serial.pin ([#24127](https://github.com/qmk/qmk_firmware/pull/24127))
* Remove pointless `RGB_MATRIX_LED_COUNT`s ([#24133](https://github.com/qmk/qmk_firmware/pull/24133))
* `hs60/v1`: separate into ANSI and ISO revisions ([#24136](https://github.com/qmk/qmk_firmware/pull/24136))
* Migrate half-duplex `SERIAL_USART_TX_PIN` to DD ([#24143](https://github.com/qmk/qmk_firmware/pull/24143))
* Migrate split.soft_serial_pin to split.serial.pin O-Z ([#24146](https://github.com/qmk/qmk_firmware/pull/24146))
* Migrate split.soft_serial_pin to split.serial.pin 0-H ([#24155](https://github.com/qmk/qmk_firmware/pull/24155))
* Remove instances of MASTER_LEFT. ([#24163](https://github.com/qmk/qmk_firmware/pull/24163))
* Rename EC Type-K ([#24180](https://github.com/qmk/qmk_firmware/pull/24180))
* Migrate split.soft_serial_pin to split.serial.pin H-O ([#24185](https://github.com/qmk/qmk_firmware/pull/24185))
* Remove split.transport.protocol=serial ([#24191](https://github.com/qmk/qmk_firmware/pull/24191))
* Refactor use of `matrix_scan_kb` ([#24200](https://github.com/qmk/qmk_firmware/pull/24200))
* Eliminate use of `#include "../default/keymap.c"`. ([#24215](https://github.com/qmk/qmk_firmware/pull/24215))
* Remove keyboard level `QK_BOOT` implementations ([#24231](https://github.com/qmk/qmk_firmware/pull/24231))
* Remove `handwired/pytest/has_template` ([#24232](https://github.com/qmk/qmk_firmware/pull/24232))
* Refactor opendeck/32 ([#24233](https://github.com/qmk/qmk_firmware/pull/24233))
* Refactor printedpad ([#24236](https://github.com/qmk/qmk_firmware/pull/24236))
* Refactor orthocode ([#24237](https://github.com/qmk/qmk_firmware/pull/24237))
* Remove unnecessary RGB Matrix shutdown hooks ([#24238](https://github.com/qmk/qmk_firmware/pull/24238))
* Remove all via-enabled keymaps, including `via`. ([#24322](https://github.com/qmk/qmk_firmware/pull/24322))
Keyboard fixes:
* Fix dogtag/info.json ([#23520](https://github.com/qmk/qmk_firmware/pull/23520))
* splitkb/kyria: remove `CONVERT_TO` at keyboard level ([#23857](https://github.com/qmk/qmk_firmware/pull/23857))
* Fixup mt/mt84 ([#23883](https://github.com/qmk/qmk_firmware/pull/23883))
* Fix for encoders and support ENCODER_MAP_ENABLE on Planck rev7 ([#23967](https://github.com/qmk/qmk_firmware/pull/23967))
* `handwired/swiftrax/bumblebee`: fix layout name ([#24064](https://github.com/qmk/qmk_firmware/pull/24064))
* Fixup boardsource/the_q RGB matrix coordinates ([#24086](https://github.com/qmk/qmk_firmware/pull/24086))
* Various fixes for keyboards not implementing callbacks correctly ([#24092](https://github.com/qmk/qmk_firmware/pull/24092))
* Various fixes for keyboards not implementing callbacks correctly ([#24116](https://github.com/qmk/qmk_firmware/pull/24116))
* Remove duplicate calls to `housekeeping_task_user` ([#24201](https://github.com/qmk/qmk_firmware/pull/24201))
* Fixup `handwired/dactyl_minidox` ([#24253](https://github.com/qmk/qmk_firmware/pull/24253))
* Fix build failure on zsa/moonlander with DYNAMIC_MACRO_ENABLE ([#24316](https://github.com/qmk/qmk_firmware/pull/24316))
Others:
* LED drivers: extract documentation from LED/RGB Matrix pages ([#23630](https://github.com/qmk/qmk_firmware/pull/23630))
* Implement data driven serial driver ([#23923](https://github.com/qmk/qmk_firmware/pull/23923))
* Remove skipped schema files ([#23987](https://github.com/qmk/qmk_firmware/pull/23987))
* Update RGBLight (Underglow) keycode names ([#23999](https://github.com/qmk/qmk_firmware/pull/23999))
Bugs:
* Fix NKRO and Mouse Emulation on arm_atsam ([#23945](https://github.com/qmk/qmk_firmware/pull/23945))
* Force `dump_lines()` to always use Unix line endings ([#23954](https://github.com/qmk/qmk_firmware/pull/23954))
* Fixup home link. ([#24068](https://github.com/qmk/qmk_firmware/pull/24068))

View File

@@ -1,19 +0,0 @@
## Changes requiring user action
### SparkFun Pro Micro RP2040 converter renamed
The converter for the SparkFun Pro Micro RP2040 has been renamed.
from:
```
promicro_rp2040
```
to:
```c
sparkfun_rp2040
```
This change was made to avoid confusion between the clones named ProMicro RP2040 and the SparkFun Pro Micro RP2040. The clones should be using the `rp2040_ce` option.

122
docs/ChangeLog/20241124.md Normal file
View File

@@ -0,0 +1,122 @@
# QMK Breaking Changes - 2024 November 24 Changelog
## Notable Features
November 2024 brings a relatively lightweight QMK release. As with previous cycles, almost all PRs were related to cleanup or re-organization of aspects of QMK.
One notable item is the removal of `arm_atsam` -- this affects users with `massdrop/ctrl` or `massdrop/alt` keyboards. These have no current replacement, but support for an alternative to the `arm_atsam` backend is nearing completion. Unfortunately the alternative backend didn't make this quarter's list of merges, so there's a temporary removal of these boards. Users who need to build for these targets should stay on the `0.26.x` version of QMK until these boards have been restored.
## Changes Requiring User Action
### Updated Keyboard Codebases
One note with updated keyboard names -- historical keyboard names are still considered valid when using [External Userspace](../newbs_external_userspace) 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 |
|-------------------|-------------------------|
| saevus/cor | concreteflowers/cor |
| saevus/cor_tkl | concreteflowers/cor_tkl |
## Deprecation Notices
In line with the [notice period](../support_deprecation_policy#how-much-advance-notice-will-be-given), deprecation notices for larger items are listed here.
### RGB Keycode Overhaul ([#23679](https://github.com/qmk/qmk_firmware/pull/23679), [#24484](https://github.com/qmk/qmk_firmware/pull/24484), [#24490](https://github.com/qmk/qmk_firmware/pull/24490))
RGB keycodes have been reworked to allow for both rgblight and rgb_matrix to coexist for the handful of boards in the repo with both enabled. Previously, `RGB_xxx` style keycodes were available, but now for rgblight we have `UG_xxx` (underglow), and `RM_xxx` for rgb_matrix. Default keymaps have been updated to reflect whichever system the respective board enables.
Longer-term, `RGB_xxx` style keycodes will be removed, but for now they act as if they're `UG_xxx`, and `UG_xxx` keycodes act upon both rgblight and rgb_matrix simultaneously. Put simply, the existing `RGB_xxx` keycodes act as they always have, giving users time to transition across to the new keycodes instead.
### ADNS9800 and PMW33xx sensor firmware ROM removal ([#24428](https://github.com/qmk/qmk_firmware/pull/24428))
Following on from the last Breaking Changes cycle, Binary blobs for optical sensors have been removed from the QMK codebase. Hooks allowing users to supply their own have been put in place; users wishing to source firmware blobs and integrate them into their keymap may do so. Doing so renders their firmware un-distributable due to licensing incompatibility with the GPL -- as such user firmware containing such blobs must not be distributed.
Please get in touch with the QMK team on Discord if your sensor is no longer functional.
## Full changelist
Core:
* Refactor F4 ld files to use common files ([#18059](https://github.com/qmk/qmk_firmware/pull/18059))
* Add LD7032 support to QP. ([#20828](https://github.com/qmk/qmk_firmware/pull/20828))
* Add combo key repress feature ([#22858](https://github.com/qmk/qmk_firmware/pull/22858))
* Add Layer Lock feature ([#23430](https://github.com/qmk/qmk_firmware/pull/23430))
* Added MCU support for ArteryTek AT32F415 ([#23445](https://github.com/qmk/qmk_firmware/pull/23445))
* Allow codegen of `keymap.json` => `keymap.c` without requiring layers/layout etc. ([#23451](https://github.com/qmk/qmk_firmware/pull/23451))
* Separate RGBLight/RGB Matrix keycode handling ([#23679](https://github.com/qmk/qmk_firmware/pull/23679))
* Allow for inverted SPI CS logic ([#23699](https://github.com/qmk/qmk_firmware/pull/23699))
* Add timer_save and _restore functions. ([#23887](https://github.com/qmk/qmk_firmware/pull/23887))
* Allow for `get_hardware_id()` to be used for serial number. ([#24053](https://github.com/qmk/qmk_firmware/pull/24053))
* Segregrate keycode at pre-process record quantum ([#24194](https://github.com/qmk/qmk_firmware/pull/24194))
* Add ability to poweroff ADNS5050 sensor ([#24223](https://github.com/qmk/qmk_firmware/pull/24223))
* quantum: util: add bit and bitmask helpers ([#24229](https://github.com/qmk/qmk_firmware/pull/24229))
* Add new connection keycodes for Bluetooth, 2.4GHz. ([#24251](https://github.com/qmk/qmk_firmware/pull/24251))
* `usb_device_state`: consolidate usb state handling across implementations ([#24258](https://github.com/qmk/qmk_firmware/pull/24258))
* Remove global k_rgb_matrix_split ([#24348](https://github.com/qmk/qmk_firmware/pull/24348))
* util: uf2families: sync with upstream ([#24351](https://github.com/qmk/qmk_firmware/pull/24351))
* [Maintenance] builddefs: common_rules: overhaul debug information generation ([#24352](https://github.com/qmk/qmk_firmware/pull/24352))
* Add easier way to set default single layer ([#24376](https://github.com/qmk/qmk_firmware/pull/24376))
* Tweak OS detect, add OS_DETECTION_SINGLE_REPORT ([#24379](https://github.com/qmk/qmk_firmware/pull/24379))
* Reinstate global `k_rgb_matrix_split` ([#24388](https://github.com/qmk/qmk_firmware/pull/24388))
* Bring supported STM32F4 configs in line with F4x1 ([#24413](https://github.com/qmk/qmk_firmware/pull/24413))
* Extended wheel reports ([#24422](https://github.com/qmk/qmk_firmware/pull/24422))
* Remove binary blobs from optical sensors. ([#24428](https://github.com/qmk/qmk_firmware/pull/24428))
* Remove `STM32_PWM_USE_ADVANCED` references ([#24432](https://github.com/qmk/qmk_firmware/pull/24432))
* Remove `RING_BUFFERED_6KRO_REPORT_ENABLE` due to disuse. ([#24433](https://github.com/qmk/qmk_firmware/pull/24433))
* Move pointing device driver code ([#24445](https://github.com/qmk/qmk_firmware/pull/24445))
* Add svlinky converter ([#24449](https://github.com/qmk/qmk_firmware/pull/24449))
* Update combo user function variable ([#24467](https://github.com/qmk/qmk_firmware/pull/24467))
* `qmk find`: expand operator support ([#24468](https://github.com/qmk/qmk_firmware/pull/24468))
* Rename RGB and HSV structs ([#24471](https://github.com/qmk/qmk_firmware/pull/24471))
* RGBLight: Improve RGB Test animation ([#24477](https://github.com/qmk/qmk_firmware/pull/24477))
* Change default ARM hardware PWM WS2812 tick frequency to 800kHz ([#24508](https://github.com/qmk/qmk_firmware/pull/24508))
* Add pointing tests ([#24513](https://github.com/qmk/qmk_firmware/pull/24513))
* Joystick: add support for 8-way hat switch ([#24515](https://github.com/qmk/qmk_firmware/pull/24515))
* Refactor Riverflow matrix effect with runner ([#24520](https://github.com/qmk/qmk_firmware/pull/24520))
* Update Pixel Rain to respect LED range limits ([#24532](https://github.com/qmk/qmk_firmware/pull/24532))
* Update Jellybean Raindrops to respect LED range limits ([#24534](https://github.com/qmk/qmk_firmware/pull/24534))
* Refactor Breathing effect with runner ([#24535](https://github.com/qmk/qmk_firmware/pull/24535))
* Refactor LED Breathing effect with runner ([#24540](https://github.com/qmk/qmk_firmware/pull/24540))
* Expose rgb_matrix_update_pwm_buffers to be available in keymaps ([#24573](https://github.com/qmk/qmk_firmware/pull/24573))
* Simple Python script to show polling rate ([#24622](https://github.com/qmk/qmk_firmware/pull/24622))
* Add keycode PDF(layer) to set the default layer in EEPROM ([#24630](https://github.com/qmk/qmk_firmware/pull/24630))
* Provide method to save a single default layer in the full range of 0-31 ([#24639](https://github.com/qmk/qmk_firmware/pull/24639))
CLI:
* Refactor painter arguments to table instead of commandline ([#24456](https://github.com/qmk/qmk_firmware/pull/24456))
* `qmk new-keyboard`: separate dev board and MCU selection ([#24548](https://github.com/qmk/qmk_firmware/pull/24548))
* Bump minimum required Python version ([#24554](https://github.com/qmk/qmk_firmware/pull/24554))
Submodule updates:
* Remove `arm_atsam` platform ([#24337](https://github.com/qmk/qmk_firmware/pull/24337))
Keyboards:
* add ergodox Community Layout for LAYOUT_ergodox keyboards ([#22963](https://github.com/qmk/qmk_firmware/pull/22963))
* Cutie Club Fidelity Layout Additions ([#23838](https://github.com/qmk/qmk_firmware/pull/23838))
* Add Ploopyco functions for host state control ([#23953](https://github.com/qmk/qmk_firmware/pull/23953))
* Corne rev4 ([#24084](https://github.com/qmk/qmk_firmware/pull/24084))
* Rename saevus to concreteflowers ([#24249](https://github.com/qmk/qmk_firmware/pull/24249))
* Remove `60_tsangan_hhkb` community layout ([#24355](https://github.com/qmk/qmk_firmware/pull/24355))
* add USART configuration to config.h for PS/2 mouse support ([#24398](https://github.com/qmk/qmk_firmware/pull/24398))
* Add SteelSeries Prime+ mouse ([#24408](https://github.com/qmk/qmk_firmware/pull/24408))
* Rename RGB/HSV structs: keyboard-level code ([#24476](https://github.com/qmk/qmk_firmware/pull/24476))
* xiudi/xd002: Remove broken oversized `multilayer_rgb` keymap ([#24480](https://github.com/qmk/qmk_firmware/pull/24480))
* Update keycodes for keyboards with RGB Matrix ([#24484](https://github.com/qmk/qmk_firmware/pull/24484))
* Cipulot Updates ([#24539](https://github.com/qmk/qmk_firmware/pull/24539))
* Update keymaps to use PDF keycode ([#24633](https://github.com/qmk/qmk_firmware/pull/24633))
* Remove keyboard use of eeconfig_read_default_layer ([#24635](https://github.com/qmk/qmk_firmware/pull/24635))
Keyboard fixes:
* Fix rendering of `keymap_config.no_gui` within `led_update_kb` ([#24473](https://github.com/qmk/qmk_firmware/pull/24473))
* Fix duplication of core `GU_TOGG` keycode ([#24474](https://github.com/qmk/qmk_firmware/pull/24474))
* keebio/nyquist: Remove invalid I2C config ([#24479](https://github.com/qmk/qmk_firmware/pull/24479))
* horrortroll/nyx/rev1: Fix compilation of custom RGB effect ([#24481](https://github.com/qmk/qmk_firmware/pull/24481))
Others:
* Improve consistency of syntax within `data/constants/keycodes` ([#24528](https://github.com/qmk/qmk_firmware/pull/24528))
Bugs:
* WS2812 API rework ([#24364](https://github.com/qmk/qmk_firmware/pull/24364))
* Backward compatibility for new RGB keycode handling ([#24490](https://github.com/qmk/qmk_firmware/pull/24490))
* Fix compiliation issues with OS Detection ([#24502](https://github.com/qmk/qmk_firmware/pull/24502))
* Revert removal of `QK_OUTPUT_AUTO`, fixup docs to reflect. ([#24593](https://github.com/qmk/qmk_firmware/pull/24593))
* Review fixes for layer lock feature ([#24627](https://github.com/qmk/qmk_firmware/pull/24627))

135
docs/ChangeLog/20250223.md Normal file
View File

@@ -0,0 +1,135 @@
# QMK Breaking Changes - 2025 February 23 Changelog
## Notable Features
### Community Modules ([#24848](https://github.com/qmk/qmk_firmware/pull/24848))
Community Modules are a feature within QMK which allows code to be implemented by third parties, making it available for other people to import into their own builds.
These modules can provide implementations which override or enhance normal QMK processing; initialization, key processing, suspend, and shutdown are some of the provided hooks which modules may currently implement.
See the [Community Modules documentation](../features/community_modules) for more information, including the full list of available hooks.
First-class support for [External Userspace](../newbs_external_userspace) is included out of the box, so there's even more reason to take the plunge and convert your keymap builds to a userspace repository!
::: tip
An example with a new keycode and some debugging information in the QMK repository [lives here](https://github.com/qmk/qmk_firmware/tree/master/modules/qmk/hello_world), and a community module port of [getreuer's SOCD Cleaner](https://getreuer.info/posts/keyboards/socd-cleaner/) can be found in [tzarc's modules repo](https://github.com/tzarc/qmk_modules).
:::
### Chordal Hold ([#24560](https://github.com/qmk/qmk_firmware/pull/24560))
Chordal Hold implements, by default, an "opposite hands" rule. Suppose a tap-hold key is pressed and then, before the tapping term, another key is pressed. With Chordal Hold, the tap-hold key is settled as tapped if the two keys are on the same hand.
Chordal Hold may be useful to avoid accidental modifier activation with mod-taps, particularly in rolled keypresses when using home row mods.
See the [Chordal Hold documentation](../tap_hold#chordal-hold) for more information.
## Changes Requiring User Action
### Updated Keyboard Codebases
| Old Keyboard Name | New Keyboard Name |
|-------------------------|-----------------------------|
| cxt_studio | cxt_studio/12e4 |
| ergodox_stm32 | handwired/ergodox_stm32 |
| ploopyco/mouse | ploopyco/mouse/rev1_002 |
| ploopyco/trackball/rev1 | ploopyco/trackball/rev1_004 |
| ymdk/id75 | ymdk/id75/f103 |
## Deprecation Notices
In line with the [notice period](../support_deprecation_policy#how-much-advance-notice-will-be-given), deprecation notices for larger items are listed here.
### DEFAULT_FOLDER removal ([#24836](https://github.com/qmk/qmk_firmware/pull/24836))
`DEFAULT_FOLDER` was originally introduced to work around limitations within the build system.
Parent folders containing common configuration would create invalid build targets.
With the introduction of [`keyboard.json`](./20240526#keyboard-json) as a configuration file, the build system now has a consistent method to detect build targets.
The `DEFAULT_FOLDER` functionality is now redundant and the intent is for `rules.mk` to become pure configuration.
Backwards compatibility of build targets has been maintained where possible.
## Full changelist
Core:
* Chaining OSL and MO ([#23065](https://github.com/qmk/qmk_firmware/pull/23065))
* Add extra keymap for EurKEY layout ([#24241](https://github.com/qmk/qmk_firmware/pull/24241))
* Add leader_add_user callback ([#24266](https://github.com/qmk/qmk_firmware/pull/24266))
* always return audio pin to 0 on ARM ([#24503](https://github.com/qmk/qmk_firmware/pull/24503))
* Update Starlight matrix effects ([#24521](https://github.com/qmk/qmk_firmware/pull/24521))
* Refactor Hue Breathing matrix effect with runner ([#24525](https://github.com/qmk/qmk_firmware/pull/24525))
* Ensure timer_read() is safe to call from interrupt handlers on ARM ([#24529](https://github.com/qmk/qmk_firmware/pull/24529))
* Update Raindrops effect to respect LED range limits ([#24531](https://github.com/qmk/qmk_firmware/pull/24531))
* Add Chordal Hold, an "opposite hands rule" tap-hold option similar to Achordion, Bilateral Combinations. ([#24560](https://github.com/qmk/qmk_firmware/pull/24560))
* Azoteq - improve I2C behaviour while polling. ([#24611](https://github.com/qmk/qmk_firmware/pull/24611))
* macOS install: remove bad ARM toolchains ([#24637](https://github.com/qmk/qmk_firmware/pull/24637))
* small refactoring of TIMER_DIFF ([#24678](https://github.com/qmk/qmk_firmware/pull/24678))
* Subscript alef correction ([#24707](https://github.com/qmk/qmk_firmware/pull/24707))
* Created SH1107 driver for quantum painter ([#24724](https://github.com/qmk/qmk_firmware/pull/24724))
* [CI] Regenerate Files ([#24772](https://github.com/qmk/qmk_firmware/pull/24772))
* Patch up issue for inverted complementary output on Backlight ([#24794](https://github.com/qmk/qmk_firmware/pull/24794))
* Patch up issue when compile with APA102 driver ([#24800](https://github.com/qmk/qmk_firmware/pull/24800))
* Consolidate send_string implementations. ([#24817](https://github.com/qmk/qmk_firmware/pull/24817))
* Consolidate timer_elapsed implementations ([#24830](https://github.com/qmk/qmk_firmware/pull/24830))
* `i2c_master`: remove deprecated functions ([#24832](https://github.com/qmk/qmk_firmware/pull/24832))
* Resolve keyboard_aliases when processing keyboard make targets ([#24834](https://github.com/qmk/qmk_firmware/pull/24834))
* LED drivers: remove deprecated defines ([#24837](https://github.com/qmk/qmk_firmware/pull/24837))
* `ferris/0_1`: update I2C API usage ([#24839](https://github.com/qmk/qmk_firmware/pull/24839))
* Unify i2c_master headers ([#24846](https://github.com/qmk/qmk_firmware/pull/24846))
* Community modules ([#24848](https://github.com/qmk/qmk_firmware/pull/24848))
* Relocate base WS2812 code ([#24850](https://github.com/qmk/qmk_firmware/pull/24850))
* Unify UART headers ([#24855](https://github.com/qmk/qmk_firmware/pull/24855))
* Unify spi_master headers ([#24857](https://github.com/qmk/qmk_firmware/pull/24857))
* Invoke `process_record_via` after `_user`/`_kb` have a chance to handle it. ([#24879](https://github.com/qmk/qmk_firmware/pull/24879))
CLI:
* Extend lint to reject 'blank' files ([#23994](https://github.com/qmk/qmk_firmware/pull/23994))
* `qmk docs`: restore `--port` and `--browser` arguments ([#24623](https://github.com/qmk/qmk_firmware/pull/24623))
* Update via2json layout macro searching ([#24640](https://github.com/qmk/qmk_firmware/pull/24640))
* Change `new-keymap` keymap name prompt ([#24701](https://github.com/qmk/qmk_firmware/pull/24701))
* default_keyboard.h generation tweaks ([#24715](https://github.com/qmk/qmk_firmware/pull/24715))
* Ensure `qmk flash` rejects invalid files for uf2 compatible bootloaders ([#24802](https://github.com/qmk/qmk_firmware/pull/24802))
* Reject readme dummy content ([#24913](https://github.com/qmk/qmk_firmware/pull/24913))
Submodule updates:
* chibios: usb_main: remove OTG sof workaround ([#24259](https://github.com/qmk/qmk_firmware/pull/24259))
* Update ChibiOS to latest stable branch. ([#24651](https://github.com/qmk/qmk_firmware/pull/24651))
* Update ChibiOS `stable_21.11.x`. ([#24714](https://github.com/qmk/qmk_firmware/pull/24714))
* Update ChibiOS-Contrib. ([#24803](https://github.com/qmk/qmk_firmware/pull/24803))
Keyboards:
* refactor: move ymdk/id75 to revision ([#24590](https://github.com/qmk/qmk_firmware/pull/24590))
* skyloong/gk61: Remove overriding of core keycode behaviour ([#24655](https://github.com/qmk/qmk_firmware/pull/24655))
* moky/moky88: Remove use of deprecated defines ([#24656](https://github.com/qmk/qmk_firmware/pull/24656))
* Updating Promenade keyboard (Missing keys in matrix, other minor changes to keymap) ([#24705](https://github.com/qmk/qmk_firmware/pull/24705))
* Moving cxt_studio keyboard to own folder ([#24748](https://github.com/qmk/qmk_firmware/pull/24748))
* Add CXT Studio 12E3 keyboard ([#24749](https://github.com/qmk/qmk_firmware/pull/24749))
* Add Silakka54 keyboard ([#24757](https://github.com/qmk/qmk_firmware/pull/24757))
* Add more layout for skiller_sgk50_s4 ([#24784](https://github.com/qmk/qmk_firmware/pull/24784))
* Add watchdog service to RGBKB Sol 3 ([#24786](https://github.com/qmk/qmk_firmware/pull/24786))
* Migrate some DEFAULT_FOLDER to keyboard_aliases.hjson ([#24835](https://github.com/qmk/qmk_firmware/pull/24835))
* Remove DEFAULT_FOLDER where keyboard aliases already exists ([#24838](https://github.com/qmk/qmk_firmware/pull/24838))
* Migrate some DEFAULT_FOLDER to keyboard_aliases.hjson ([#24845](https://github.com/qmk/qmk_firmware/pull/24845))
* Update for 'A-JAZZ AKC084' ('A-JAZZ AKP846') ([#24868](https://github.com/qmk/qmk_firmware/pull/24868))
* handwired/xealous - Remove DEFAULT_FOLDER ([#24877](https://github.com/qmk/qmk_firmware/pull/24877))
* Updates to Ploopy Classic, Mouse, and Thumb for RP2040 hardware upgrade ([#24880](https://github.com/qmk/qmk_firmware/pull/24880))
* Move Ergodox STM32 to handwired folder ([#24903](https://github.com/qmk/qmk_firmware/pull/24903))
* Remove readme dummy content ([#24912](https://github.com/qmk/qmk_firmware/pull/24912))
* Migrate some DEFAULT_FOLDER to keyboard_aliases.hjson ([#24915](https://github.com/qmk/qmk_firmware/pull/24915))
* Migrate some DEFAULT_FOLDER to keyboard_aliases.hjson ([#24938](https://github.com/qmk/qmk_firmware/pull/24938))
Keyboard fixes:
* Fix up CI with `DEFAULT_FOLDER`. ([#24842](https://github.com/qmk/qmk_firmware/pull/24842))
* rgbkb/pan - Remove invalid build target ([#24844](https://github.com/qmk/qmk_firmware/pull/24844))
Others:
* Formally deprecate DEFAULT_FOLDER ([#24836](https://github.com/qmk/qmk_firmware/pull/24836))
* Correct I2C API reference ([#24840](https://github.com/qmk/qmk_firmware/pull/24840))
Bugs:
* Retro Tapping Re-Write; Key Roll Fix ([#23641](https://github.com/qmk/qmk_firmware/pull/23641))
* Fix Quantum Painter compiliation issues with heavy optimization ([#24667](https://github.com/qmk/qmk_firmware/pull/24667))
* Bugfix and update for AT32F415 ([#24807](https://github.com/qmk/qmk_firmware/pull/24807))
* Fix for Chordal Hold: stuck mods when mod-taps are pressed in a stuttered sequence. ([#24878](https://github.com/qmk/qmk_firmware/pull/24878))
* fix EEPROM driver for STM32L0/1 cat.1 devices ([#24928](https://github.com/qmk/qmk_firmware/pull/24928))

View File

@@ -1,19 +0,0 @@
## Changes requiring user action
### Key Override Introspection
Changes were made to key overrides in order to hook them into the keymap introspection system.
Key override signature changed from:
```c
const key_override_t **key_overrides = (const key_override_t *[]){
```
to:
```c
const key_override_t *key_overrides[] = {
```
The list of key overrides now does not need to be `NULL`-terminated.

View File

@@ -16,6 +16,8 @@
"/tutorial": "/newbs",
"/unicode": "/feature_unicode",
"/features/bluetooth": "/features/wireless",
"/adc_driver": "/drivers/adc",
"/apa102_driver": "/drivers/apa102",
"/audio_driver": "/drivers/audio",
@@ -24,7 +26,7 @@
"/feature_auto_shift": "/features/auto_shift",
"/feature_autocorrect": "/features/autocorrect",
"/feature_backlight": "/features/backlight",
"/feature_bluetooth": "/features/bluetooth",
"/feature_bluetooth": "/features/wireless",
"/feature_bootmagic": "/features/bootmagic",
"/feature_caps_word": "/features/caps_word",
"/feature_combo": "/features/combo",

View File

@@ -21,7 +21,8 @@
{ "text": "Debugging QMK", "link": "/faq_debug" },
{ "text": "Keymap FAQ", "link": "/faq_keymap" },
{ "text": "Squeezing Space from AVR", "link": "/squeezing_avr" },
{ "text": "Glossary", "link": "/reference_glossary" }
{ "text": "Glossary", "link": "/reference_glossary" },
{ "text": "License Violations", "link": "/license_violations" }
]
},
{
@@ -59,6 +60,7 @@
"items": [
{ "text": "Customizing Functionality", "link": "/custom_quantum_functions" },
{ "text": "Driver Installation with Zadig", "link": "/driver_installation_zadig" },
{ "text": "Community Modules", "link": "/features/community_modules" },
{ "text": "Keymap Overview", "link": "/keymap" },
{
"text": "Development Environments",
@@ -123,6 +125,7 @@
{ "text": "Key Lock", "link": "/features/key_lock" },
{ "text": "Key Overrides", "link": "/features/key_overrides" },
{ "text": "Layers", "link": "/feature_layers" },
{ "text": "Layer Lock", "link": "/features/layer_lock" },
{ "text": "One Shot Keys", "link": "/one_shot_keys" },
{ "text": "OS Detection", "link": "/features/os_detection" },
{ "text": "Raw HID", "link": "/features/rawhid" },
@@ -166,8 +169,7 @@
]
},
{ "text": "Audio", "link": "/features/audio" },
{ "text": "Bluetooth", "link": "/features/bluetooth" },
{ "text": "Bootmagic Lite", "link": "/features/bootmagic" },
{ "text": "Bootmagic", "link": "/features/bootmagic" },
{ "text": "Converters", "link": "/feature_converters" },
{ "text": "Custom Matrix", "link": "/custom_matrix" },
{ "text": "DIP Switch", "link": "/features/dip_switch" },
@@ -179,7 +181,8 @@
{ "text": "Pointing Device", "link": "/features/pointing_device" },
{ "text": "PS/2 Mouse", "link": "/features/ps2_mouse" },
{ "text": "Split Keyboard", "link": "/features/split_keyboard" },
{ "text": "Stenography", "link": "/features/stenography" }
{ "text": "Stenography", "link": "/features/stenography" },
{ "text": "Wireless", "link": "/features/wireless" }
]
},
{
@@ -204,7 +207,7 @@
{ "text": "My Pull Request Was Flagged", "link": "/breaking_changes_instructions" },
{
"text": "Most Recent ChangeLog",
"link": "/ChangeLog/20240526"
"link": "/ChangeLog/20250223"
},
{ "text": "Past Breaking Changes", "link": "/breaking_changes_history" },
{ "text": "Deprecation Policy", "link": "/support_deprecation_policy" }

View File

@@ -4,7 +4,7 @@ This page attempts to introduce developers to the QMK Compiler. It does not go i
# Overview
The QMK Compile API consists of a few movings parts:
The QMK Compile API consists of a few moving parts:
![Architecture Diagram](https://raw.githubusercontent.com/qmk/qmk_api/master/docs/architecture.svg)

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 May 26](ChangeLog/20240526)
* [2024 Feb 25](ChangeLog/20240225)
* [2023 Nov 26](ChangeLog/20231126)
* [2025 Feb 23](ChangeLog/20250223)
* [2024 Nov 24](ChangeLog/20241124)
* [2024 Aug 25](ChangeLog/20240825)
* [Older Breaking Changes](breaking_changes_history)
## When is the next Breaking Change?
The next Breaking Change is scheduled for August 25, 2024.
The next Breaking Change is scheduled for May 25, 2025.
### Important Dates
* 2024 May 26 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions.
* 2024 Jul 28 - `develop` closed to new PRs.
* 2024 Jul 28 - Call for testers.
* 2024 Aug 4 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes
* 2024 Aug 18 - `develop` is locked, only critical bugfix PRs merged.
* 2024 Aug 22 - `master` is locked, no PRs merged.
* 2024 Aug 25 - Merge `develop` to `master`.
* 2024 Aug 25 - `master` is unlocked. PRs can be merged again.
* 2025 Feb 23 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions.
* 2025 Apr 27 - `develop` closed to new PRs.
* 2025 Apr 27 - Call for testers.
* 2025 May 11 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes
* 2025 May 18 - `develop` is locked, only critical bugfix PRs merged.
* 2025 May 23 - `master` is locked, no PRs merged.
* 2025 May 25 - Merge `develop` to `master`.
* 2025 May 25 - `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/20240526`.
* The PR has a ChangeLog file describing the changes under `<qmk_firmware>/docs/Changelog/20241124`.
* 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,9 @@
This page links to all previous changelogs from the QMK Breaking Changes process.
* [2025 Feb 23](ChangeLog/20250223) - version 0.28.0
* [2024 Nov 24](ChangeLog/20241124) - version 0.27.0
* [2024 Aug 25](ChangeLog/20240825) - version 0.26.0
* [2024 May 26](ChangeLog/20240526) - version 0.25.0
* [2024 Feb 25](ChangeLog/20240225) - version 0.24.0
* [2023 Nov 26](ChangeLog/20231126) - version 0.23.0

View File

@@ -31,4 +31,4 @@ Commenting on your pull request and being responsive to questions, comments, and
### Ask for Help
Having your submission flagged may have caught you off guard. If you find yourself intimidated or overwhelmed, let us know. Comment on your pull request, or [reach out to the QMK team on Discord](https://discord.gg/Uq7gcHh).
Having your submission flagged may have caught you off guard. If you find yourself intimidated or overwhelmed, let us know. Comment on your pull request, or [reach out to the QMK team on Discord](https://discord.gg/qmk).

View File

@@ -153,20 +153,26 @@ qmk cd
This command allows for searching through keyboard/keymap targets, filtering by specific criteria. `info.json` and `rules.mk` files contribute to the search data, as well as keymap configurations, and the results can be filtered using "dotty" syntax matching the overall `info.json` file format.
For example, one could search for all keyboards using STM32F411:
For example, one could search for all keyboards powered by the STM32F411 microcontroller:
```
qmk find -f 'processor=STM32F411'
qmk find -f 'processor==STM32F411'
```
...and one can further constrain the list to keyboards using STM32F411 as well as rgb_matrix support:
The list can be further constrained by passing additional filter expressions:
```
qmk find -f 'processor=STM32F411' -f 'features.rgb_matrix=true'
qmk find -f 'processor==STM32F411' -f 'features.rgb_matrix==true'
```
The following filter expressions are also supported:
The following filter expressions are supported:
- `key == value`: Match targets where `key` is equal to `value`. May include wildcards such as `*` and `?`.
- `key != value`: Match targets where `key` is not `value`. May include wildcards such as `*` and `?`.
- `key < value`: Match targets where `key` is a number less than `value`.
- `key > value`: Match targets where `key` is a number greater than `value`.
- `key <= value`: Match targets where `key` is a number less than or equal to `value`.
- `key >= value`: Match targets where `key` is a number greater than or equal to `value`.
- `exists(key)`: Match targets where `key` is present.
- `absent(key)`: Match targets where `key` is not present.
- `contains(key, value)`: Match targets where `key` contains `value`. Can be used for strings, arrays and object keys.
@@ -175,7 +181,7 @@ The following filter expressions are also supported:
You can also list arbitrary values for each matched target with `--print`:
```
qmk find -f 'processor=STM32F411' -p 'keyboard_name' -p 'features.rgb_matrix'
qmk find -f 'processor==STM32F411' -p 'keyboard_name' -p 'features.rgb_matrix'
```
**Usage**:
@@ -717,23 +723,26 @@ Now open your dev environment and live a squiggly-free life.
## `qmk docs`
This command starts a local HTTP server which you can use for browsing or improving the docs. Default port is 5173.
This command starts a local HTTP server which you can use for browsing or improving the docs, and provides live reload capability whilst editing. Default port is 8936.
Use the `-b`/`--browser` flag to automatically open the local webserver in your default browser.
This command requires `node` and `yarn` to be installed as prerequisites, and provides live reload capability whilst editing.
Requires `node` and `yarn` to be installed as prerequisites.
**Usage**:
```
usage: qmk docs [-h]
usage: qmk docs [-h] [-b] [-p PORT]
options:
-h, --help show this help message and exit
-h, --help show this help message and exit
-b, --browser Open the docs in the default browser.
-p, --port PORT Port number to use.
```
## `qmk generate-docs`
This command allows you to generate QMK documentation locally. It can be uses for general browsing or improving the docs.
Use the `-s`/`--serve` flag to also serve the static site once built. Default port is 4173.
This command generates QMK documentation for production.
Use the `-s`/`--serve` flag to also serve the static site on port 4173 once built. Note that this does not provide live reloading; use `qmk docs` instead for development purposes.
This command requires `node` and `yarn` to be installed as prerequisites, and requires the operating system to support symlinks.

View File

@@ -57,6 +57,10 @@ You can also use any ARM chip with USB that [ChibiOS](https://www.chibios.org) s
* [WB32F3G71xx](http://www.westberrytech.com)
* [WB32FQ95xx](http://www.westberrytech.com)
### Artery (AT32)
* [AT32F415](https://www.arterychip.com/en/product/AT32F415.jsp)
### NXP (Kinetis)
* [MKL26Z64](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/kl-series-cortex-m0-plus/kinetis-kl2x-72-96-mhz-usb-ultra-low-power-microcontrollers-mcus-based-on-arm-cortex-m0-plus-core:KL2x)
@@ -75,10 +79,6 @@ You can also use any ARM chip with USB that [ChibiOS](https://www.chibios.org) s
For a detailed overview about the RP2040 support by QMK see the [dedicated RP2040 page](platformdev_rp2040).
## Atmel ATSAM
There is limited support for one of Atmel's ATSAM microcontrollers, that being the [ATSAMD51J18A](https://www.microchip.com/wwwproducts/en/ATSAMD51J18A) used by the [Massdrop keyboards](https://github.com/qmk/qmk_firmware/tree/master/keyboards/massdrop). However, it is not recommended to design a board with this microcontroller as the support is quite specialized to Massdrop hardware.
## RISC-V
### GigaDevice

View File

@@ -413,7 +413,7 @@ Use these to enable or disable building certain features. The more you have enab
* `MAGIC_ENABLE`
* MAGIC actions (BOOTMAGIC without the boot)
* `BOOTMAGIC_ENABLE`
* Enable Bootmagic Lite
* Enable Bootmagic
* `MOUSEKEY_ENABLE`
* Mouse keys
* `EXTRAKEY_ENABLE`
@@ -426,8 +426,6 @@ Use these to enable or disable building certain features. The more you have enab
* Key combo feature
* `NKRO_ENABLE`
* USB N-Key Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
* `RING_BUFFERED_6KRO_REPORT_ENABLE`
* USB 6-Key Rollover - Instead of stopping any new input once 6 keys are pressed, the oldest key is released and the new key is pressed.
* `AUDIO_ENABLE`
* Enable the audio subsystem.
* `KEY_OVERRIDE_ENABLE`

View File

@@ -54,7 +54,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[1] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, BL_TOGG, BL_DOWN, BL_UP,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_TOGG, UG_NEXT, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, UG_VALD, UG_VALU, BL_TOGG, BL_DOWN, BL_UP,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
@@ -82,7 +82,7 @@ The default keymap uses the `LAYOUT_all` macro, so that will be the value of the
"KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "MO(1)", "KC_RGUI", "KC_RCTL", "KC_LEFT", "KC_DOWN", "KC_RGHT"
],
[
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_TOG", "RGB_MOD", "RGB_HUD", "RGB_HUI", "RGB_SAD", "RGB_SAI", "RGB_VAD", "RGB_VAI", "BL_TOGG", "BL_DOWN", "BL_UP",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "UG_TOGG", "UG_NEXT", "UG_HUED", "UG_HUEU", "UG_SATD", "UG_SATU", "UG_VALD", "UG_VALU", "BL_TOGG", "BL_DOWN", "BL_UP",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_VOLU",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "QK_BOOT", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPLY", "KC_MNXT", "KC_VOLD",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",

View File

@@ -11,7 +11,7 @@ Third-party contributions help us grow and improve QMK. We want to make the pull
## I Don't Want to Read This Whole Thing! I Just Have a Question!
If you'd like to ask questions about QMK you can do so on the [OLKB Subreddit](https://reddit.com/r/olkb) or on [Discord](https://discord.gg/Uq7gcHh).
If you'd like to ask questions about QMK you can do so on the [OLKB Subreddit](https://reddit.com/r/olkb) or on [Discord](https://discord.gg/qmk).
Please keep these things in mind:
@@ -29,7 +29,7 @@ QMK is largely written in C, with specific features and parts written in C++. It
# Where Can I Go for Help?
If you need help you can [open an issue](https://github.com/qmk/qmk_firmware/issues) or [chat on Discord](https://discord.gg/Uq7gcHh).
If you need help you can [open an issue](https://github.com/qmk/qmk_firmware/issues) or [chat on Discord](https://discord.gg/qmk).
# How Do I Make a Contribution?
@@ -106,10 +106,10 @@ enum my_keycodes {
Before opening a pull request, you can preview your changes if you have set up the development environment by running this command from the `qmk_firmware/` folder:
```
qmk docs
qmk docs -b
```
and navigating to `http://localhost:5173/`.
Which should automatically open your browser; otherwise, navigate to `http://localhost:8936/`.
## Keyboards
@@ -128,7 +128,7 @@ We also ask that you follow these guidelines:
Before you put a lot of work into building your new feature you should make sure you are implementing it in the best way. You can get a basic understanding of QMK by reading [Understanding QMK](understanding_qmk), which will take you on a tour of the QMK program flow. From here you should talk to us to get a sense of the best way to implement your idea. There are two main ways to do this:
* [Chat on Discord](https://discord.gg/Uq7gcHh)
* [Chat on Discord](https://discord.gg/qmk)
* [Open an Issue](https://github.com/qmk/qmk_firmware/issues/new)
Feature and Bug Fix PRs affect all keyboards. We are also in the process of restructuring QMK. For this reason it is especially important for significant changes to be discussed before implementation has happened. If you open a PR without talking to us first please be prepared to do some significant rework if your choices do not mesh well with our planned direction.

View File

@@ -9,12 +9,19 @@ This page does not assume any special knowledge about QMK, but reading [Understa
We have structured QMK as a hierarchy:
* Core (`_quantum`)
* Community Module (`_<module>`)
* Community Module -> Keyboard/Revision (`_<module>_kb`)
* Community Module -> Keymap (`_<module>_user`)
* Keyboard/Revision (`_kb`)
* Keymap (`_user`)
Each of the functions described below can be defined with a `_kb()` suffix or a `_user()` suffix. We intend for you to use the `_kb()` suffix at the Keyboard/Revision level, while the `_user()` suffix should be used at the Keymap level.
When defining functions at the Keyboard/Revision level it is important that your `_kb()` implementation call `_user()` before executing anything else- otherwise the keymap level function will never be called.
When defining functions at the Keyboard/Revision level it is important that your `_kb()` implementation call `_user()` at an appropriate location, otherwise the keymap level function will never be called.
Functions at the `_<module>_xxx()` level are intended to allow keyboards or keymaps to override or enhance the processing associated with a [community module](/features/community_modules).
When defining module overrides such as `process_record_<module>()`, the same pattern should be used; the module must invoke `process_record_<module>_kb()` as appropriate.
# Custom Keycodes
@@ -99,7 +106,7 @@ These are the three main initialization functions, listed in the order that they
* `keyboard_post_init_*` - Happens at the end of the firmware's startup process. This is where you'd want to put "customization" code, for the most part.
::: warning
For most people, the `keyboard_post_init_user` function is what you want to call. For instance, this is where you want to set up things for RGB Underglow.
For most people, the `keyboard_post_init_user` function is what you want to implement. For instance, this is where you want to set up things for RGB Underglow.
:::
## Keyboard Pre Initialization code
@@ -184,7 +191,7 @@ Whenever possible you should customize your keyboard by using `process_record_*(
### Example `matrix_scan_*` Implementation
This example has been deliberately omitted. You should understand enough about QMK internals to write this without an example before hooking into such a performance sensitive area. If you need help please [open an issue](https://github.com/qmk/qmk_firmware/issues/new) or [chat with us on Discord](https://discord.gg/Uq7gcHh).
This example has been deliberately omitted. You should understand enough about QMK internals to write this without an example before hooking into such a performance sensitive area. If you need help please [open an issue](https://github.com/qmk/qmk_firmware/issues/new) or [chat with us on Discord](https://discord.gg/qmk).
### `matrix_scan_*` Function Documentation

View File

@@ -8,8 +8,8 @@ We recommend the use of the [Zadig](https://zadig.akeo.ie/) utility. If you have
## Installation
Put your keyboard into bootloader mode, either by hitting the `QK_BOOT` keycode (which may be on a different layer), or by pressing the reset switch that's usually located on the underside of the board. If your keyboard has neither, try holding Escape or Space+`B` as you plug it in (see the [Bootmagic Lite](features/bootmagic) docs for more details). Some boards use [Command](features/command) instead of Bootmagic; in this case, you can enter bootloader mode by hitting Left Shift+Right Shift+`B` or Left Shift+Right Shift+Escape at any point while the keyboard is plugged in.
Some keyboards may have specific instructions for entering the bootloader. For example, the [Bootmagic Lite](features/bootmagic) key (default: Escape) might be on a different key, e.g. Left Control; or the magic combination for Command (default: Left Shift+Right Shift) might require you to hold something else, e.g. Left Control+Right Control. Refer to the board's README file if you are unsure.
Put your keyboard into bootloader mode, either by hitting the `QK_BOOT` keycode (which may be on a different layer), or by pressing the reset switch that's usually located on the underside of the board. If your keyboard has neither, try holding Escape or Space+`B` as you plug it in (see the [Bootmagic](features/bootmagic) docs for more details). Some boards use [Command](features/command) instead of Bootmagic; in this case, you can enter bootloader mode by hitting Left Shift+Right Shift+`B` or Left Shift+Right Shift+Escape at any point while the keyboard is plugged in.
Some keyboards may have specific instructions for entering the bootloader. For example, the [Bootmagic](features/bootmagic) key (default: Escape) might be on a different key, e.g. Left Control; or the magic combination for Command (default: Left Shift+Right Shift) might require you to hold something else, e.g. Left Control+Right Control. Refer to the board's README file if you are unsure.
To put a device in bootloader mode with USBaspLoader, tap the `RESET` button while holding down the `BOOT` button.
Alternatively, hold `BOOT` while inserting the USB cable.
@@ -98,6 +98,7 @@ The device name here is the name that appears in Zadig, and may not be what the
|`bootloadhid` |HIDBoot |`16C0:05DF` |HidUsb |
|`usbasploader`|USBasp |`16C0:05DC` |libusbK|
|`apm32-dfu` |APM32 DFU ISP Mode |`314B:0106` |WinUSB |
|`at32-dfu` |AT32 Bootloader DFU |`2E3C:DF11` |WinUSB |
|`stm32-dfu` |STM32 BOOTLOADER |`0483:DF11` |WinUSB |
|`gd32v-dfu` |GD32V BOOTLOADER |`28E9:0189` |WinUSB |
|`kiibohd` |Kiibohd DFU Bootloader |`1C11:B007` |WinUSB |

View File

@@ -57,27 +57,32 @@ This driver needs one Timer per enabled/used DAC channel, to trigger conversion;
Additionally, in the board config, you'll want to make changes to enable the DACs, GPT for Timers 6, 7 and 8:
```c
//halconf.h:
#define HAL_USE_DAC TRUE
#define HAL_USE_GPT TRUE
::: code-group
```c [halconf.h]
#pragma once
#define HAL_USE_DAC TRUE // [!code focus]
#define HAL_USE_GPT TRUE // [!code focus]
#include_next <halconf.h>
```
```c [mcuconf.h]
#pragma once
```c
// mcuconf.h:
#include_next <mcuconf.h>
#undef STM32_DAC_USE_DAC1_CH1
#define STM32_DAC_USE_DAC1_CH1 TRUE
#undef STM32_DAC_USE_DAC1_CH2
#define STM32_DAC_USE_DAC1_CH2 TRUE
#undef STM32_GPT_USE_TIM6
#define STM32_GPT_USE_TIM6 TRUE
#undef STM32_GPT_USE_TIM7
#define STM32_GPT_USE_TIM7 TRUE
#undef STM32_GPT_USE_TIM8
#define STM32_GPT_USE_TIM8 TRUE
#undef STM32_DAC_USE_DAC1_CH1 // [!code focus]
#define STM32_DAC_USE_DAC1_CH1 TRUE // [!code focus]
#undef STM32_DAC_USE_DAC1_CH2 // [!code focus]
#define STM32_DAC_USE_DAC1_CH2 TRUE // [!code focus]
#undef STM32_GPT_USE_TIM6 // [!code focus]
#define STM32_GPT_USE_TIM6 TRUE // [!code focus]
#undef STM32_GPT_USE_TIM7 // [!code focus]
#define STM32_GPT_USE_TIM7 TRUE // [!code focus]
#undef STM32_GPT_USE_TIM8 // [!code focus]
#define STM32_GPT_USE_TIM8 TRUE // [!code focus]
```
:::
::: tip
Note: DAC1 (A4) uses TIM6, DAC2 (A5) uses TIM7, and the audio state timer uses TIM8 (configurable).
@@ -95,23 +100,28 @@ only needs one timer (GPTD6, Tim6) to trigger the DAC unit to do a conversion; t
Additionally, in the board config, you'll want to make changes to enable the DACs, GPT for Timer 6:
```c
//halconf.h:
#define HAL_USE_DAC TRUE
#define HAL_USE_GPT TRUE
::: code-group
```c [halconf.h]
#pragma once
#define HAL_USE_DAC TRUE // [!code focus]
#define HAL_USE_GPT TRUE // [!code focus]
#include_next <halconf.h>
```
```c [mcuconf.h]
#pragma once
```c
// mcuconf.h:
#include_next <mcuconf.h>
#undef STM32_DAC_USE_DAC1_CH1
#define STM32_DAC_USE_DAC1_CH1 TRUE
#undef STM32_DAC_USE_DAC1_CH2
#define STM32_DAC_USE_DAC1_CH2 TRUE
#undef STM32_GPT_USE_TIM6
#define STM32_GPT_USE_TIM6 TRUE
#undef STM32_DAC_USE_DAC1_CH1 // [!code focus]
#define STM32_DAC_USE_DAC1_CH1 TRUE // [!code focus]
#undef STM32_DAC_USE_DAC1_CH2 // [!code focus]
#define STM32_DAC_USE_DAC1_CH2 TRUE // [!code focus]
#undef STM32_GPT_USE_TIM6 // [!code focus]
#define STM32_GPT_USE_TIM6 TRUE // [!code focus]
```
:::
### DAC Config
@@ -170,19 +180,25 @@ This driver uses the ChibiOS-PWM system to produce a square-wave on specific out
The hardware directly toggles the pin via its alternate function. See your MCU's data-sheet for which pin can be driven by what timer - looking for TIMx_CHy and the corresponding alternate function.
A configuration example for the STM32F103C8 would be:
```c
//halconf.h:
#define HAL_USE_PWM TRUE
#define HAL_USE_PAL TRUE
::: code-group
```c [halconf.h]
#pragma once
#define HAL_USE_PWM TRUE // [!code focus]
#define HAL_USE_PAL TRUE // [!code focus]
#include_next <halconf.h>
```
```c [mcuconf.h]
#pragma once
```c
// mcuconf.h:
#include_next <mcuconf.h>
#undef STM32_PWM_USE_TIM1
#define STM32_PWM_USE_TIM1 TRUE
#undef STM32_PWM_USE_TIM1 // [!code focus]
#define STM32_PWM_USE_TIM1 TRUE // [!code focus]
```
:::
If we now target pin A8, looking through the data-sheet of the STM32F103C8, for the timers and alternate functions
- TIM1_CH1 = PA8 <- alternate0

View File

@@ -13,7 +13,7 @@ The following macros provide basic control of GPIOs and are found in `platforms/
|`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_set_pin_output_open_drain(pin)`|Set pin as output, open-drain mode (unavailable on AVR) |
|`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 |

View File

@@ -16,17 +16,22 @@ You can then call the I2C API by including `i2c_master.h` in your code.
## I2C Addressing {#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
the lower bit (indicating read/write) will be done by the respective functions. Almost all I2C addresses listed
on datasheets and the internet will be represented as 7 bits occupying the lower 7 bits and will need to be
shifted to the left (more significant) by one bit. This is easy to do via the bitwise shift operator `<< 1`.
I2C addresses listed on datasheets and the internet are usually represented as a 7-bit value. The eighth bit (the least significant bit) controls whether the operation is a read or a write.
You can either do this on each call to the functions below, or once in your definition of the address. For example, if your device has an address of `0x18`:
All of the address parameters expected by the driver API should therefore be pushed to the upper 7 bits of the address byte; the driver will take care of setting the read/write bit as appropriate.
This is easy to do via the bitwise left shift operator. For example, if your device has an address of `0x18` you might create a define for convenience:
```c
#define MY_I2C_ADDRESS (0x18 << 1)
```
Or, you can shift the address ahead of time:
```c
#define MY_I2C_ADDRESS 0x30
```
See https://www.robot-electronics.co.uk/i2c-tutorial for more information about I2C addressing and other technical details.
## AVR Configuration {#avr-configuration}
@@ -39,12 +44,12 @@ The following defines can be used to configure the I2C master driver:
No further setup is required - just connect the `SDA` and `SCL` pins of your I2C devices to the matching pins on the MCU:
|MCU |`SCL`|`SDA`|
|------------------|-----|-----|
|ATmega16/32U4 |`D0` |`D1` |
|AT90USB64/128 |`D0` |`D1` |
|ATmega32A |`C0` |`C1` |
|ATmega328/P |`C5` |`C4` |
|MCU |`SCL`|`SDA`|
|-------------|-----|-----|
|ATmega16/32U4|`D0` |`D1` |
|AT90USB64/128|`D0` |`D1` |
|ATmega32A |`C0` |`C1` |
|ATmega328/P |`C5` |`C4` |
::: tip
The ATmega16/32U2 does not possess I2C functionality, and so cannot use this driver.
@@ -52,20 +57,27 @@ The ATmega16/32U2 does not possess I2C functionality, and so cannot use this dri
## ChibiOS/ARM Configuration {#arm-configuration}
You'll need to determine which pins can be used for I2C -- a an example, STM32 parts generally have multiple I2C peripherals, labeled I2C1, I2C2, I2C3 etc.
You'll need to determine which pins can be used for I2C -- as an example, STM32 parts generally have multiple I2C peripherals, labeled I2C1, I2C2, I2C3 etc.
To enable I2C, modify your board's `halconf.h` to enable I2C:
To enable I2C, modify your board's `halconf.h` to enable I2C, then modify your board's `mcuconf.h` to enable the peripheral you've chosen:
```c
#define HAL_USE_I2C TRUE
::: code-group
```c [halconf.h]
#pragma once
#define HAL_USE_I2C TRUE // [!code focus]
#include_next <halconf.h>
```
```c [mcuconf.h]
#pragma once
Then, modify your board's `mcuconf.h` to enable the peripheral you've chosen, for example:
#include_next <mcuconf.h>
```c
#undef STM32_I2C_USE_I2C2
#define STM32_I2C_USE_I2C2 TRUE
#undef STM32_I2C_USE_I2C2 // [!code focus]
#define STM32_I2C_USE_I2C2 TRUE // [!code focus]
```
:::
|`mcuconf.h` Setting |Description |Default|
|----------------------------|----------------------------------------------------------------------------------|-------|
@@ -76,15 +88,19 @@ Then, modify your board's `mcuconf.h` to enable the peripheral you've chosen, fo
Configuration-wise, you'll need to set up the peripheral as per your MCU's datasheet -- the defaults match the pins for a Proton-C, i.e. STM32F303.
|`config.h` Overrride |Description |Default|
|------------------------|--------------------------------------------------------------|-------|
|`I2C_DRIVER` |I2C peripheral to use - I2C1 -> `I2CD1`, I2C2 -> `I2CD2` etc. |`I2CD1`|
|`I2C1_SCL_PIN` |The pin definition for SCL |`B6` |
|`I2C1_SCL_PAL_MODE` |The alternate function mode for SCL |`4` |
|`I2C1_SDA_PIN` |The pin definition for SDA |`B7` |
|`I2C1_SDA_PAL_MODE` |The alternate function mode for SDA |`4` |
|`config.h` Override|Description |Default|
|-------------------|-------------------------------------------------------------|-------|
|`I2C_DRIVER` |I2C peripheral to use - I2C1 -> `I2CD1`, I2C2 -> `I2CD2` etc.|`I2CD1`|
|`I2C1_SCL_PIN` |The pin to use for SCL |`B6` |
|`I2C1_SCL_PAL_MODE`|The alternate function mode for SCL |`4` |
|`I2C1_SDA_PIN` |The pin to use for SDA |`B7` |
|`I2C1_SDA_PAL_MODE`|The alternate function mode for SDA |`4` |
The following configuration values depend on the specific MCU in use.
::: tip
Currently only a single I2C peripheral is supported, therefore the `I2C1_*` defines are used for configuration regardless of the selected peripheral.
:::
The following configuration values are dependent on the ChibiOS I2C LLD, which is dictated by the microcontroller.
### I2Cv1 {#arm-configuration-i2cv1}
@@ -140,7 +156,7 @@ void i2c_init(void) {
---
### `i2c_status_t i2c_transmit(uint8_t address, uint8_t *data, uint16_t length, uint16_t timeout)` {#api-i2c-transmit}
### `i2c_status_t i2c_transmit(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-transmit}
Send multiple bytes to the selected I2C device.
@@ -148,10 +164,10 @@ Send multiple bytes to the selected I2C device.
- `uint8_t address`
The 7-bit I2C address of the device.
- `uint8_t *data`
- `const uint8_t* data`
A pointer to the data to transmit.
- `uint16_t length`
The number of bytes to write. Take care not to overrun the length of `data`.
The number of bytes to write. Take care not to overrun the length of `data`.
- `uint16_t timeout`
The time in milliseconds to wait for a response from the target device.
@@ -161,6 +177,29 @@ Send multiple bytes to the selected I2C device.
---
### `i2c_status_t i2c_transmit_P(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-transmit-p}
Send multiple bytes from PROGMEM to the selected I2C device.
On ARM devices, this function is simply an alias for `i2c_transmit(address, data, length, timeout)`.
#### Arguments {#api-i2c-transmit-p-arguments}
- `uint8_t address`
The 7-bit I2C address of the device.
- `const uint8_t* data`
A pointer to the data to transmit.
- `uint16_t length`
The number of bytes to write. Take care not to overrun the length of `data`.
- `uint16_t timeout`
The time in milliseconds to wait for a response from the target device.
#### Return Value {#api-i2c-transmit-p-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_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-receive}
Receive multiple bytes from the selected I2C device.
@@ -169,10 +208,10 @@ Receive multiple bytes from the selected I2C device.
- `uint8_t address`
The 7-bit I2C address of the device.
- `uint8_t *data`
A pointer to the buffer to read into.
- `uint8_t* data`
A pointer to a buffer to read into.
- `uint16_t length`
The number of bytes to read. Take care not to overrun the length of `data`.
The number of bytes to read. Take care not to overrun the length of `data`.
- `uint16_t timeout`
The time in milliseconds to wait for a response from the target device.
@@ -182,9 +221,9 @@ Receive multiple bytes from the selected I2C device.
---
### `i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-write-register}
### `i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-write-register}
Writes to a register with an 8-bit address on the I2C device.
Write to a register with an 8-bit address on the I2C device.
#### Arguments {#api-i2c-write-register-arguments}
@@ -192,10 +231,10 @@ Writes to a register with an 8-bit address on the I2C device.
The 7-bit I2C address of the device.
- `uint8_t regaddr`
The register address to write to.
- `uint8_t *data`
- `const uint8_t* data`
A pointer to the data to transmit.
- `uint16_t length`
The number of bytes to write. Take care not to overrun the length of `data`.
The number of bytes to write. Take care not to overrun the length of `data`.
- `uint16_t timeout`
The time in milliseconds to wait for a response from the target device.
@@ -205,9 +244,9 @@ Writes to a register with an 8-bit address on the I2C device.
---
### `i2c_status_t i2c_write_register16(uint8_t devaddr, uint16_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-write-register16}
### `i2c_status_t i2c_write_register16(uint8_t devaddr, uint16_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-write-register16}
Writes to a register with a 16-bit address (big endian) on the I2C device.
Write to a register with a 16-bit address (big endian) on the I2C device.
#### Arguments {#api-i2c-write-register16-arguments}
@@ -215,10 +254,10 @@ Writes to a register with a 16-bit address (big endian) on the I2C device.
The 7-bit I2C address of the device.
- `uint16_t regaddr`
The register address to write to.
- `uint8_t *data`
- `const uint8_t* data`
A pointer to the data to transmit.
- `uint16_t length`
The number of bytes to write. Take care not to overrun the length of `data`.
The number of bytes to write. Take care not to overrun the length of `data`.
- `uint16_t timeout`
The time in milliseconds to wait for a response from the target device.
@@ -230,7 +269,7 @@ Writes to a register with a 16-bit address (big endian) on the I2C device.
### `i2c_status_t i2c_read_register(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-read-register}
Reads from a register with an 8-bit address on the I2C device.
Read from a register with an 8-bit address on the I2C device.
#### Arguments {#api-i2c-read-register-arguments}
@@ -238,8 +277,10 @@ Reads from a register with an 8-bit address on the I2C device.
The 7-bit I2C address of the device.
- `uint8_t regaddr`
The register address to read from.
- `uint8_t data`
A pointer to a buffer to read into.
- `uint16_t length`
The number of bytes to read. Take care not to overrun the length of `data`.
The number of bytes to read. Take care not to overrun the length of `data`.
- `uint16_t timeout`
The time in milliseconds to wait for a response from the target device.
@@ -251,7 +292,7 @@ Reads from a register with an 8-bit address on the I2C device.
### `i2c_status_t i2c_read_register16(uint8_t devaddr, uint16_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-read-register16}
Reads from a register with a 16-bit address (big endian) on the I2C device.
Read from a register with a 16-bit address (big endian) on the I2C device.
#### Arguments {#api-i2c-read-register16-arguments}
@@ -259,8 +300,10 @@ Reads from a register with a 16-bit address (big endian) on the I2C device.
The 7-bit I2C address of the device.
- `uint16_t regaddr`
The register address to read from.
- `uint8_t* data`
A pointer to a buffer to read into.
- `uint16_t length`
The number of bytes to read. Take care not to overrun the length of `data`.
The number of bytes to read. Take care not to overrun the length of `data`.
- `uint16_t timeout`
The time in milliseconds to wait for a response from the target device.
@@ -272,19 +315,19 @@ Reads from a register with a 16-bit address (big endian) on the I2C device.
### `i2c_status_t i2c_ping_address(uint8_t address, uint16_t timeout)` {#api-i2c-ping-address}
Pings the I2C bus for a specific address.
Ping 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).
On ChibiOS a "best effort" attempt is made by reading a single byte from register 0 at the given 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 (unsuccessful response to ping attempt).
This function is weakly defined, meaning it can be overridden if necessary for your particular use case:
This function is weakly defined, meaning it can be overridden if necessary for your particular use case.
#### Arguments
#### Arguments {#api-i2c-ping-address-arguments}
- `uint8_t address`
The 7-bit I2C address of the device (ie. without the read/write bit - this will be set automatically).
The 7-bit I2C address of the device.
- `uint16_t timeout`
The time in milliseconds to wait for a response from the target device.
#### Return Value
#### Return Value {#api-i2c-ping-address-return}
`I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`.

View File

@@ -12,8 +12,6 @@ The Serial driver powers the [Split Keyboard](../features/split_keyboard) featur
Serial in this context should be read as **sending information one bit at a time**, rather than implementing UART/USART/RS485/RS232 standards.
:::
<hr>
## Bitbang
This is the Default driver, absence of configuration assumes this driver. It works by [bit banging](https://en.wikipedia.org/wiki/Bit_banging) a GPIO pin using the CPU. It is therefore not as efficient as a dedicated hardware peripheral, which the Half-duplex and Full-duplex drivers use.
@@ -53,11 +51,15 @@ SERIAL_DRIVER = bitbang
#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
```
3. On ARM platforms you must turn on ChibiOS `PAL_USE_CALLBACKS` feature:
3. On ARM platforms you must turn on ChibiOS PAL callbacks:
* In `halconf.h` add the line `#define PAL_USE_CALLBACKS TRUE`.
```c
#pragma once
<hr>
#define PAL_USE_CALLBACKS TRUE // [!code focus]
#include_next <halconf.h>
```
## USART Half-duplex
@@ -117,8 +119,6 @@ For STM32 MCUs several GPIO configuration options can be changed as well. See th
4. Decide either for `SERIAL`, `SIO`, or `PIO` subsystem. See section ["Choosing a driver subsystem"](#choosing-a-driver-subsystem).
<hr>
## USART Full-duplex
Targeting ARM boards based on ChibiOS where communication is offloaded to an USART hardware device. The advantages over bitbanging are fast, accurate timings and reduced CPU usage; therefore it is advised to choose this driver over all others where possible. Due to its internal design Full-duplex is slightly more efficient than the Half-duplex driver, but Full-duplex should be primarily chosen if Half-duplex operation is not supported by the controller's USART peripheral.
@@ -179,38 +179,46 @@ For STM32 MCUs several GPIO configuration options, including the ability for `TX
4. Decide either for `SERIAL`, `SIO`, or `PIO` subsystem. See section ["Choosing a driver subsystem"](#choosing-a-driver-subsystem).
<hr>
## Choosing a driver subsystem
### The `SERIAL` driver
The `SERIAL` Subsystem is supported for the majority of ChibiOS MCUs and should be used whenever supported. Follow these steps in order to activate it:
1. In your keyboards `halconf.h` add:
1. Enable the SERIAL subsystem in the ChibiOS HAL.
```c
#define HAL_USE_SERIAL TRUE
```
Add the following to your keyboard's `halconf.h`, creating it if necessary:
2. In your keyboards `mcuconf.h`: activate the USART peripheral that is used on your MCU. The shown example is for an STM32 MCU, so this will not work on MCUs by other manufacturers. You can find the correct names in the `mcuconf.h` files of your MCU that ship with ChibiOS.
Just below `#include_next <mcuconf.h>` add:
```c
#pragma once
```c
#include_next <mcuconf.h>
#define HAL_USE_SERIAL TRUE // [!code focus]
#undef STM32_SERIAL_USE_USARTn
#define STM32_SERIAL_USE_USARTn TRUE
```
#include_next <halconf.h>
```
Where 'n' matches the peripheral number of your selected USART on the MCU.
2. Activate the USART peripheral that is used on your MCU. The shown example is for an STM32 MCU, so this will not work on MCUs by other manufacturers. You can find the correct names in the `mcuconf.h` files of your MCU that ship with ChibiOS.
3. In you keyboards `config.h`: override the default USART `SERIAL` driver if you use a USART peripheral that does not belong to the default selected `SD1` driver. For instance, if you selected `STM32_SERIAL_USE_USART3` the matching driver would be `SD3`.
Add the following to your keyboard's `mcuconf.h`, creating it if necessary:
```c
#define SERIAL_USART_DRIVER SD3
```
```c
#pragma once
#include_next <mcuconf.h>
#undef STM32_SERIAL_USE_USARTn // [!code focus]
#define STM32_SERIAL_USE_USARTn TRUE // [!code focus]
```
Where *n* matches the peripheral number of your selected USART on the MCU.
3. Override the default USART `SERIAL` driver if you use a USART peripheral that does not belong to the default selected `SD1` driver. For instance, if you selected `STM32_SERIAL_USE_USART3` the matching driver would be `SD3`.
Add the following to your keyboard's `config.h`:
```c
#define SERIAL_USART_DRIVER SD3
```
### The `SIO` driver
@@ -218,31 +226,41 @@ The `SIO` Subsystem was added to ChibiOS with the 21.11 release and is only supp
Follow these steps in order to activate it:
1. In your keyboards `halconf.h` add:
1. Enable the SIO subsystem in the ChibiOS HAL.
```c
#define HAL_USE_SIO TRUE
```
Add the following to your keyboard's `halconf.h`, creating it if necessary:
2. In your keyboards `mcuconf.h:` activate the USART peripheral that is used on your MCU. The shown example is for an STM32 MCU, so this will not work on MCUs by other manufacturers. You can find the correct names in the `mcuconf.h` files of your MCU that ship with ChibiOS.
Just below `#include_next <mcuconf.h>` add:
```c
#pragma once
```c
#include_next <mcuconf.h>
#define HAL_USE_SIO TRUE // [!code focus]
#undef STM32_SIO_USE_USARTn
#define STM32_SIO_USE_USARTn TRUE
```
#include_next <halconf.h>
```
Where 'n' matches the peripheral number of your selected USART on the MCU.
2. Activate the USART peripheral that is used on your MCU. The shown example is for an STM32 MCU, so this will not work on MCUs by other manufacturers. You can find the correct names in the `mcuconf.h` files of your MCU that ship with ChibiOS.
3. In the keyboard's `config.h` file: override the default USART `SIO` driver if you use a USART peripheral that does not belong to the default selected `SIOD1` driver. For instance, if you selected `STM32_SERIAL_USE_USART3` the matching driver would be `SIOD3`.
Add the following to your keyboard's `mcuconf.h`, creating it if necessary:
```c
#pragma once
#include_next <mcuconf.h>
#undef STM32_SIO_USE_USARTn // [!code focus]
#define STM32_SIO_USE_USARTn TRUE // [!code focus]
```
Where *n* matches the peripheral number of your selected USART on the MCU.
3. Override the default USART `SIO` driver if you use a USART peripheral that does not belong to the default selected `SIOD1` driver. For instance, if you selected `STM32_SERIAL_USE_USART3` the matching driver would be `SIOD3`.
Add the following to your keyboard's `config.h`:
```c
#define SERIAL_USART_DRIVER SIOD3
```
```c
#define SERIAL_USART_DRIVER SIOD3
```
### The `PIO` driver
The `PIO` subsystem is a Raspberry Pi RP2040 specific implementation, using an integrated PIO peripheral and is therefore only available on this MCU. Because of the flexible nature of PIO peripherals, **any** GPIO pin can be used as a `TX` or `RX` pin. Half-duplex and Full-duplex operation modes are fully supported with this driver. Half-duplex uses the built-in pull-ups and GPIO manipulation of the RP2040 to drive the line high by default, thus an external pull-up resistor **is not required**.
@@ -254,8 +272,6 @@ Optionally, the PIO peripheral utilized for split communication can be changed w
The Serial PIO program uses 2 state machines, 13 instructions and the complete interrupt handler of the PIO peripheral it is running on.
<hr>
## Advanced Configuration
There are several advanced configuration options that can be defined in your keyboards `config.h` file:
@@ -265,9 +281,11 @@ There are several advanced configuration options that can be defined in your key
If you're having issues or need a higher baudrate with serial communication, you can change the baudrate which in turn controls the communication speed for serial. You want to lower the baudrate if you experience failed transactions.
```c
#define SELECT_SOFT_SERIAL_SPEED {#}
#define SELECT_SOFT_SERIAL_SPEED n
```
Where *n* is one of:
| Speed | Bitbang | Half-duplex and Full-duplex |
| ----- | -------------------------- | --------------------------- |
| `0` | 189000 baud (experimental) | 460800 baud |
@@ -287,8 +305,6 @@ This is the default time window in milliseconds in which a successful communicat
#define SERIAL_USART_TIMEOUT 20 // USART driver timeout. default 20
```
<hr>
## Troubleshooting
If you're having issues withe serial communication, you can enable debug messages that will give you insights which part of the communication failed. The enable these messages add to your keyboards `config.h` file:

View File

@@ -32,20 +32,27 @@ You may use more than one slave select pin, not just the `SS` pin. This is usefu
You'll need to determine which pins can be used for SPI -- as an example, STM32 parts generally have multiple SPI peripherals, labeled SPI1, SPI2, SPI3 etc.
To enable SPI, modify your board's `halconf.h` to enable SPI:
To enable SPI, modify your board's `halconf.h` to enable SPI, then modify your board's `mcuconf.h` to enable the peripheral you've chosen:
```c
#define HAL_USE_SPI TRUE
#define SPI_USE_WAIT TRUE
#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
::: code-group
```c [halconf.h]
#pragma once
#define HAL_USE_SPI TRUE // [!code focus]
#define SPI_USE_WAIT TRUE // [!code focus]
#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD // [!code focus]
#include_next <halconf.h>
```
```c [mcuconf.h]
#pragma once
Then, modify your board's `mcuconf.h` to enable the peripheral you've chosen, for example:
#include_next <mcuconf.h>
```c
#undef STM32_SPI_USE_SPI2
#define STM32_SPI_USE_SPI2 TRUE
#undef STM32_SPI_USE_SPI2 // [!code focus]
#define STM32_SPI_USE_SPI2 TRUE // [!code focus]
```
:::
Configuration-wise, you'll need to set up the peripheral as per your MCU's datasheet -- the defaults match the pins for a Proton-C, i.e. STM32F303.
@@ -81,7 +88,7 @@ Start an SPI transaction.
#### Arguments {#api-spi-start-arguments}
- `pin_t slavePin`
The QMK pin to assert as the slave select pin, eg. `B4`.
The GPIO pin connected to the desired device's `SS` line.
- `bool lsbFirst`
Determines the endianness of the transmission. If `true`, the least significant bit of each byte is sent first.
- `uint8_t mode`
@@ -99,7 +106,7 @@ Start an SPI transaction.
#### Return Value {#api-spi-start-return}
`false` if the supplied parameters are invalid or the SPI peripheral is already in use, or `true`.
`true` if the operation was successful, otherwise `false` if the supplied parameters are invalid or the SPI peripheral is already in use.
---
@@ -124,7 +131,7 @@ Read a byte from the selected SPI device.
#### Return Value {#api-spi-read-return}
`SPI_STATUS_TIMEOUT` if the timeout period elapses, or the byte read from the device.
`SPI_STATUS_TIMEOUT` if the timeout period elapses, otherwise the byte read from the device.
---
@@ -152,7 +159,7 @@ Receive multiple bytes from the selected SPI device.
#### Arguments {#api-spi-receive-arguments}
- `uint8_t *data`
A pointer to the buffer to read into.
A pointer to a buffer to read into.
- `uint16_t length`
The number of bytes to read. Take care not to overrun the length of `data`.

View File

@@ -35,23 +35,27 @@ You'll need to determine which pins can be used for UART -- as an example, STM32
To enable UART, modify your board's `mcuconf.h` to enable the peripheral you've chosen, for example:
```c
#undef STM32_SERIAL_USE_USART2
#define STM32_SERIAL_USE_USART2 TRUE
#pragma once
#include_next <mcuconf.h>
#undef STM32_SERIAL_USE_USART2 // [!code focus]
#define STM32_SERIAL_USE_USART2 TRUE // [!code focus]
```
Configuration-wise, you'll need to set up the peripheral as per your MCU's datasheet -- the defaults match the pins for a Proton-C, i.e. STM32F303.
| `config.h` override | Description | Default Value |
| --------------------------- | --------------------------------------------------------------- | ------------- |
| `#define UART_DRIVER` | USART peripheral to use - USART1 -> `SD1`, USART2 -> `SD2` etc. | `SD1` |
| `#define UART_TX_PIN` | The pin to use for TX | `A9` |
| `#define UART_TX_PAL_MODE` | The alternate function mode for TX | `7` |
| `#define UART_RX_PIN` | The pin to use for RX | `A10` |
| `#define UART_RX_PAL_MODE` | The alternate function mode for RX | `7` |
| `#define UART_CTS_PIN` | The pin to use for CTS | `A11` |
| `#define UART_CTS_PAL_MODE` | The alternate function mode for CTS | `7` |
| `#define UART_RTS_PIN` | The pin to use for RTS | `A12` |
| `#define UART_RTS_PAL_MODE` | The alternate function mode for RTS | `7` |
|`config.h` Override|Description |Default|
|-------------------|---------------------------------------------------------------|-------|
|`UART_DRIVER` |USART peripheral to use - USART1 -> `SD1`, USART2 -> `SD2` etc.|`SD1` |
|`UART_TX_PIN` |The pin to use for TX |`A9` |
|`UART_TX_PAL_MODE` |The alternate function mode for TX |`7` |
|`UART_RX_PIN` |The pin to use for RX |`A10` |
|`UART_RX_PAL_MODE` |The alternate function mode for RX |`7` |
|`UART_CTS_PIN` |The pin to use for CTS |`A11` |
|`UART_CTS_PAL_MODE`|The alternate function mode for CTS |`7` |
|`UART_RTS_PIN` |The pin to use for RTS |`A12` |
|`UART_RTS_PAL_MODE`|The alternate function mode for RTS |`7` |
## API {#api}
@@ -107,7 +111,7 @@ Receive multiple bytes.
#### Arguments {#api-uart-receive-arguments}
- `uint8_t *data`
A pointer to the buffer to read into.
A pointer to a buffer to read into.
- `uint16_t length`
The number of bytes to read. Take care not to overrun the length of `data`.
@@ -119,4 +123,4 @@ Return whether the receive buffer contains data. Call this function to determine
#### Return Value {#api-uart-available-return}
`true` if the receive buffer length is non-zero.
`true` if there is data available to read.

View File

@@ -160,15 +160,23 @@ To configure the DI pin for open drain configuration, add the following to your
Depending on the ChibiOS board configuration, you may need to enable SPI at the keyboard level. For STM32, this would look like:
`halconf.h`:
```c
#define HAL_USE_SPI TRUE
::: code-group
```c [halconf.h]
#pragma once
#define HAL_USE_SPI TRUE // [!code focus]
#include_next <halconf.h>
```
`mcuconf.h`:
```c
#undef STM32_SPI_USE_SPI1
#define STM32_SPI_USE_SPI1 TRUE
```c [mcuconf.h]
#pragma once
#include_next <mcuconf.h>
#undef STM32_SPI_USE_SPI1 // [!code focus]
#define STM32_SPI_USE_SPI1 TRUE // [!code focus]
```
:::
The following `define`s apply only to the `spi` driver:
@@ -213,15 +221,23 @@ The following `#define`s apply only to the PIO driver:
Depending on the ChibiOS board configuration, you may need to enable PWM at the keyboard level. For STM32, this would look like:
`halconf.h`:
```c
#define HAL_USE_PWM TRUE
::: code-group
```c [halconf.h]
#pragma once
#define HAL_USE_PWM TRUE // [!code focus]
#include_next <halconf.h>
```
`mcuconf.h`:
```c
#undef STM32_PWM_USE_TIM2
#define STM32_PWM_USE_TIM2 TRUE
```c [mcuconf.h]
#pragma once
#include_next <mcuconf.h>
#undef STM32_PWM_USE_TIM2 // [!code focus]
#define STM32_PWM_USE_TIM2 TRUE // [!code focus]
```
:::
The following `#define`s apply only to the `pwm` driver:
@@ -236,18 +252,49 @@ The following `#define`s apply only to the `pwm` driver:
|`WS2812_PWM_COMPLEMENTARY_OUTPUT`|*Not defined* |Whether the PWM output is complementary (`TIMx_CHyN`) |
::: tip
Using a complementary timer output (`TIMx_CHyN`) is possible only for advanced-control timers (1, 8 and 20 on STM32), and the `STM32_PWM_USE_ADVANCED` option in `mcuconf.h` must be set to `TRUE`. Complementary outputs of general-purpose timers are not supported due to ChibiOS limitations.
Using a complementary timer output (`TIMx_CHyN`) is possible only for advanced-control timers (1, 8 and 20 on STM32). Complementary outputs of general-purpose timers are not supported due to ChibiOS limitations.
:::
## API {#api}
### `void ws2812_setleds(rgb_led_t *ledarray, uint16_t number_of_leds)` {#api-ws2812-setleds}
### `void ws2812_init(void)` {#api-ws2812-init}
Send RGB data to the WS2812 LED chain.
Initialize the LED driver. This function should be called first.
#### Arguments {#api-ws2812-setleds-arguments}
---
- `rgb_led_t *ledarray`
A pointer to the LED array.
- `uint16_t number_of_leds`
The length of the LED array.
### `void ws2812_set_color(int index, uint8_t red, uint8_t green, uint8_t blue)` {#api-ws2812-set-color}
Set the color of a single LED. This function does not immediately update the LEDs; call `ws2812_flush()` after you are finished.
#### Arguments {#api-ws2812-set-color-arguments}
- `int index`
The LED index in the WS2812 chain.
- `uint8_t red`
The red value to set.
- `uint8_t green`
The green value to set.
- `uint8_t blue`
The blue value to set.
---
### `void ws812_set_color_all(uint8_t red, uint8_t green, uint8_t blue)` {#api-ws2812-set-color-all}
Set the color of all LEDs.
#### Arguments {#api-ws2812-set-color-all-arguments}
- `uint8_t red`
The red value to set.
- `uint8_t green`
The green value to set.
- `uint8_t blue`
The blue value to set.
---
### `void ws2812_flush(void)` {#api-ws2812-flush}
Flush the PWM values to the LED chain.

View File

@@ -129,7 +129,7 @@ needed for older distros.
## Can't Get Message on Console
Check:
- *hid_listen* finds your device. See above.
- Enable debug by pressing **Magic**+d. See [Magic Commands](https://github.com/tmk/tmk_keyboard#magic-commands).
- Enable debug by pressing **Magic**+d. See [Magic Commands](https://github.com/tmk/tmk_keyboard/wiki#magic-commands-for-debug).
- Set `debug_enable=true`. See [Debugging](#debugging)
- Try using `print` function instead of debug print. See **common/print.h**.
- Disconnect other devices with console function. See [Issue #97](https://github.com/tmk/tmk_keyboard/issues/97).

View File

@@ -40,7 +40,7 @@ That's amazing! We would love to assist you with that!
In fact, we have a [whole page](https://qmk.fm/powered/) dedicated to adding QMK Branding to your page and keyboard. This covers pretty much everything you need (knowledge and images) to officially support QMK.
If you have any questions about this, open an issue or head to [Discord](https://discord.gg/Uq7gcHh).
If you have any questions about this, open an issue or head to [Discord](https://discord.gg/qmk).
## What Differences Are There Between QMK and TMK?

View File

@@ -34,7 +34,7 @@ On first run, the VIA code in the firmware will copy the keymap from flash memor
The simple fix for this is to clear the EEPROM. You can do this in several ways:
* Hold the Bootmagic Lite key (usually top left/Escape) while plugging the board in, which will also place the board into bootloader mode; then unplug and replug the board.
* Hold the Bootmagic key (usually top left/Escape) while plugging the board in, which will also place the board into bootloader mode; then unplug and replug the board.
* Press the `QK_CLEAR_EEPROM`/`EE_CLR` keycode if it is accessible on your keymap.
* Place the board into bootloader mode and hit the "Clear EEPROM" button. This may not be available for all bootloaders, and you may need to reflash the board afterwards.

View File

@@ -11,7 +11,7 @@ These allow you to combine a modifier with a keycode. When pressed, the keydown
|`RCTL(kc)`| |Hold Right Control and press `kc` |
|`RSFT(kc)`| |Hold Right Shift and press `kc` |
|`RALT(kc)`|`ROPT(kc)`, `ALGR(kc)` |Hold Right Alt and press `kc` |
|`RGUI(kc)`|`RCMD(kc)`, `LWIN(kc)` |Hold Right GUI and press `kc` |
|`RGUI(kc)`|`RCMD(kc)`, `RWIN(kc)` |Hold Right GUI and press `kc` |
|`LSG(kc)` |`SGUI(kc)`, `SCMD(kc)`, `SWIN(kc)`|Hold Left Shift and GUI and press `kc` |
|`LAG(kc)` | |Hold Left Alt and Left GUI and press `kc` |
|`RSG(kc)` | |Hold Right Shift and Right GUI and press `kc` |

View File

@@ -21,6 +21,7 @@ The following converters are available at this time:
| `promicro` | `liatris` |
| `promicro` | `imera` |
| `promicro` | `michi` |
| `promicro` | `svlinky` |
| `elite_c` | `stemcell` |
| `elite_c` | `rp2040_ce` |
| `elite_c` | `elite_pi` |
@@ -87,6 +88,7 @@ If a board currently supported in QMK uses a [Pro Micro](https://www.sparkfun.co
| [Liatris](https://splitkb.com/products/liatris) | `liatris` |
| [Imera](https://splitkb.com/products/imera) | `imera` |
| [Michi](https://github.com/ci-bus/michi-promicro-rp2040) | `michi` |
| [Svlinky](https://github.com/sadekbaroudi/svlinky) | `svlinky` |
Converter summary:
@@ -105,6 +107,7 @@ Converter summary:
| `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` |
| `svlinky` | `-e CONVERT_TO=svlinky` | `CONVERT_TO=svlinky` | `#ifdef CONVERT_TO_SVLINKY` |
### Proton C {#proton_c}
@@ -170,6 +173,9 @@ The Bonsai C4 only has one on-board LED (B2), and by default, both the Pro Micro
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#rp2040_ce) docs.
### Svlinky {#svlinky}
Feature set is a pro micro equivalent of the [RP2040 Community Edition](#rp2040_ce), except that two of the analog GPIO have been replaced with digital only GPIO. These two were moved to the FPC connector to support the [VIK specification](https://github.com/sadekbaroudi/vik). This means that if you are expecting analog support on all 4 pins as provided on a RP2040 Community Edition pinout, you will not have that. Please see the [Svlinky github page](https://github.com/sadekbaroudi/svlinky) for more details.
## Elite-C

View File

@@ -109,7 +109,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
}
```
And lastly, you want to add the `eeconfig_init_user` function, so that when the EEPROM is reset, you can specify default values, and even custom actions. To force an EEPROM reset, use the `EE_CLR` keycode or [Bootmagic Lite](features/bootmagic) functionallity. For example, if you want to set rgb layer indication by default, and save the default valued.
And lastly, you want to add the `eeconfig_init_user` function, so that when the EEPROM is reset, you can specify default values, and even custom actions. To force an EEPROM reset, use the `EE_CLR` keycode or [Bootmagic](features/bootmagic) functionallity. For example, if you want to set rgb layer indication by default, and save the default valued.
```c
void eeconfig_init_user(void) { // EEPROM is getting reset!

View File

@@ -8,7 +8,8 @@ For a detailed explanation of how the layer stack works, checkout [Keymap Overvi
These functions allow you to activate layers in various ways. Note that layers are not generally independent layouts -- multiple layers can be activated at once, and it's typical for layers to use `KC_TRNS` to allow keypresses to pass through to lower layers. When using momentary layer switching with MO(), LM(), TT(), or LT(), make sure to leave the key on the above layers transparent or it may not work as intended.
* `DF(layer)` - switches the default layer. The default layer is the always-active base layer that other layers stack on top of. See below for more about the default layer. This might be used to switch from QWERTY to Dvorak layout. (Note that this is a temporary switch that only persists until the keyboard loses power. To modify the default layer in a persistent way requires deeper customization, such as calling the `set_single_persistent_default_layer` function inside of [process_record_user](custom_quantum_functions#programming-the-behavior-of-any-keycode).)
* `DF(layer)` - switches the default layer. The default layer is the always-active base layer that other layers stack on top of. See below for more about the default layer. This might be used to switch from QWERTY to Dvorak layout. Note that this is a temporary switch that only persists until the keyboard loses power.
* `PDF(layer)` - sets a persistent default layer. This switch, which will last through a power loss, might be used to switch from QWERTY to Dvorak layout and only switch again when you want to.
* `MO(layer)` - momentarily activates *layer*. As soon as you let go of the key, the layer is deactivated.
* `LM(layer, mod)` - Momentarily activates *layer* (like `MO`), but with modifier(s) *mod* active. Only supports layers 0-15. The modifiers this keycode accept are prefixed with `MOD_`, not `KC_`. These modifiers can be combined using bitwise OR, e.g. `LM(_RAISE, MOD_LCTL | MOD_LALT)`.
* `LT(layer, kc)` - momentarily activates *layer* when held, and sends *kc* when tapped. Only supports layers 0-15.
@@ -17,6 +18,9 @@ These functions allow you to activate layers in various ways. Note that layers a
* `TO(layer)` - activates *layer* and de-activates all other layers (except your default layer). This function is special, because instead of just adding/removing one layer to your active layer stack, it will completely replace your current active layers, uniquely allowing you to replace higher layers with a lower one. This is activated on keydown (as soon as the key is pressed).
* `TT(layer)` - Layer Tap-Toggle. If you hold the key down, *layer* is activated, and then is de-activated when you let go (like `MO`). If you repeatedly tap it, the layer will be toggled on or off (like `TG`). It needs 5 taps by default, but you can change this by defining `TAPPING_TOGGLE` -- for example, `#define TAPPING_TOGGLE 2` to toggle on just two taps.
See also the [Layer Lock key](features/layer_lock), which locks the highest
active layer until pressed again.
### Caveats {#caveats}
Currently, the `layer` argument of `LT()` is limited to layers 0-15, and the `kc` argument to the [Basic Keycode set](keycodes_basic), meaning you can't use keycodes like `LCTL()`, `KC_TILD`, or anything greater than `0xFF`. This is because QMK uses 16-bit keycodes, of which 4 bits are used for the function identifier and 4 bits for the layer, leaving only 8 bits for the keycode.
@@ -74,6 +78,7 @@ There are a number of functions (and variables) related to how you can use or ma
| `default_layer_and(layer_mask)` | Turns on layers based on matching enabled bits between specifed layer and existing default layer state. |
| `default_layer_xor(layer_mask)` | Turns on layers based on non-matching bits between specifed layer and existing default layer state. |
| `default_layer_debug(layer_mask)` | Prints out the current bit mask and highest active default layer to debugger console. |
| [`set_single_default_layer(layer)`](ref_functions.md#setting-the-persistent-default-layer) | Sets the default layer, but does _not_ write it to persistent memory (EEPROM). |
| [`set_single_persistent_default_layer(layer)`](ref_functions.md#setting-the-persistent-default-layer) | Sets the default layer and writes it to persistent memory (EEPROM). |
| [`update_tri_layer(x, y, z)`](ref_functions.md#update_tri_layerx-y-z) | Checks if layers `x` and `y` are both on, and sets `z` based on that (on if both on, otherwise off). |
| [`update_tri_layer_state(state, x, y, z)`](ref_functions.md#update_tri_layer_statestate-x-y-z) | Does the same as `update_tri_layer(x, y, z)`, but from `layer_state_set_*` functions. |

View File

@@ -42,38 +42,7 @@ You can define up to 32 macros in a `keymap.json` file, as used by [Configurator
### Selecting Your Host Keyboard Layout
If you type in a language other than English, or use a non-QWERTY layout like Colemak, Dvorak, or Workman, you may have set your computer's input language to match this layout. This presents a challenge when creating macros - you may need to type different keys to get the same letters! To address this you can add the `host_language` key to your `keymap.json`, like so:
```json
{
"keyboard": "handwired/my_macropad",
"keymap": "my_keymap",
"host_language": "dvorak",
"macros": [
["Hello, World!"]
],
"layout": "LAYOUT_all",
"layers": [
["QK_MACRO_0"]
]
}
```
The current list of available languages is:
| belgian | bepo | br_abnt2 | canadian_multilingual |
|:-------:|:----:|:--------:|:---------------------:|
| **colemak** | **croatian** | **czech** | **danish** |
| **dvorak_fr** | **dvorak** | **dvp** | **estonian** |
| **finnish** | **fr_ch** | **french_afnor** | **french** |
| **french_osx** | **german_ch** | **german** | **german_osx** |
| **hungarian** | **icelandic** | **italian** | **italian_osx_ansi** |
| **italian_osx_iso** | **jis** | **latvian** | **lithuanian_azerty** |
| **lithuanian_qwerty** | **norman** | **norwegian** | **portuguese** |
| **portuguese_osx_iso** | **romanian** | **serbian_latin** | **slovak** |
| **slovenian** | **spanish_dvorak** | **spanish_latin_america** | **spanish** |
| **swedish** | **turkish_f** | **turkish_q** | **uk** |
| **us_international** | **workman** | **workman_zxcvm** |
If you type in a language other than English, or use a non-QWERTY layout like Colemak, Dvorak, or Workman, you may have set your computer's input language to match this layout. This presents a challenge when creating macros you may need to type different keys to get the same letters! To address this you can use [language-specific keycodes](reference_keymap_extras).
### Macro Basics
@@ -148,7 +117,9 @@ If yes, we send the string `"QMK is the best thing ever!"` to the computer via t
We return `true` to indicate to the caller that the key press we just processed should continue to be processed as normal (as we didn't replace or alter the functionality).
Finally, we define the keymap so that the first button activates our macro and the second button is just an escape button.
?>It is recommended to use the SAFE_RANGE macro as per [Customizing Functionality](custom_quantum_functions).
::: tip
It is recommended to use the SAFE_RANGE macro as per [Customizing Functionality](custom_quantum_functions).
:::
You might want to add more than one macro.
You can do that by adding another keycode and adding another case to the switch statement, like so:

View File

@@ -74,8 +74,9 @@ Additionally, `config.h` here will be processed like the same file in your keyma
The reason for this, is that `<name>.h` won't be added in time to add settings (such as `#define TAPPING_TERM 100`), and including the `<name.h>` file in any `config.h` files will result in compile issues.
!>You should use the `config.h` for [configuration options](config_options), and the `<name>.h` file for user or keymap specific settings (such as the enum for layer or keycodes)
::: warning
You should use the `config.h` for [configuration options](config_options), and the `<name>.h` file for user or keymap specific settings (such as the enum for layer or keycodes)
:::
## Readme (`readme.md`)

View File

@@ -161,15 +161,23 @@ Note that the choice of timer may conflict with the [Audio](audio) feature.
Depending on the ChibiOS board configuration, you may need to enable PWM at the keyboard level. For STM32, this would look like:
`halconf.h`:
```c
#define HAL_USE_PWM TRUE
::: code-group
```c [halconf.h]
#pragma once
#define HAL_USE_PWM TRUE // [!code focus]
#include_next <halconf.h>
```
`mcuconf.h`:
```c
#undef STM32_PWM_USE_TIM4
#define STM32_PWM_USE_TIM4 TRUE
```c [mcuconf.h]
#pragma once
#include_next <mcuconf.h>
#undef STM32_PWM_USE_TIM4 // [!code focus]
#define STM32_PWM_USE_TIM4 TRUE // [!code focus]
```
:::
The following `#define`s apply only to the `pwm` driver:
@@ -187,15 +195,23 @@ Refer to the ST datasheet for your particular MCU to determine these values. For
Depending on the ChibiOS board configuration, you may need to enable general-purpose timers at the keyboard level. For STM32, this would look like:
`halconf.h`:
```c
#define HAL_USE_GPT TRUE
::: code-group
```c [halconf.h]
#pragma once
#define HAL_USE_GPT TRUE // [!code focus]
#include_next <halconf.h>
```
`mcuconf.h`:
```c
#undef STM32_GPT_USE_TIM15
#define STM32_GPT_USE_TIM15 TRUE
```c [mcuconf.h]
#pragma once
#include_next <mcuconf.h>
#undef STM32_GPT_USE_TIM15 // [!code focus]
#define STM32_GPT_USE_TIM15 TRUE // [!code focus]
```
:::
The following `#define`s apply only to the `timer` driver:

View File

@@ -1,46 +0,0 @@
# Bluetooth
## Bluetooth Known Supported Hardware
Currently Bluetooth support is limited to AVR based chips. For Bluetooth 2.1, QMK has support for RN-42 modules. For more recent BLE protocols, currently only the Adafruit Bluefruit SPI Friend is directly supported. BLE is needed to connect to iOS devices. Note iOS does not support mouse input.
|Board |Bluetooth Protocol |Connection Type|rules.mk |Bluetooth Chip|
|----------------------------------------------------------------|--------------------|---------------|---------------------------------|--------------|
|Roving Networks RN-42 (Sparkfun Bluesmirf) |Bluetooth Classic |UART |`BLUETOOTH_DRIVER = rn42` |RN-42 |
|[Bluefruit LE SPI Friend](https://www.adafruit.com/product/2633)|Bluetooth Low Energy|SPI |`BLUETOOTH_DRIVER = bluefruit_le`|nRF51822 |
Not Supported Yet but possible:
* [Bluefruit LE UART Friend](https://www.adafruit.com/product/2479). [Possible tmk implementation found in](https://github.com/tmk/tmk_keyboard/issues/514)
* HC-05 boards flashed with RN-42 firmware. They apparently both use the CSR BC417 Chip. Flashing it with RN-42 firmware gives it HID capability.
* Sparkfun Bluetooth Mate
* HM-13 based boards
### Adafruit BLE SPI Friend
Currently The only bluetooth chipset supported by QMK is the Adafruit Bluefruit SPI Friend. It's a Nordic nRF51822 based chip running Adafruit's custom firmware. Data is transmitted via Adafruit's SDEP over Hardware SPI. The [Feather 32u4 Bluefruit LE](https://www.adafruit.com/product/2829) is supported as it's an AVR mcu connected via SPI to the Nordic BLE chip with Adafruit firmware. If Building a custom board with the SPI friend it would be easiest to just use the pin selection that the 32u4 feather uses but you can change the pins in the config.h options with the following defines:
* `#define BLUEFRUIT_LE_RST_PIN D4`
* `#define BLUEFRUIT_LE_CS_PIN B4`
* `#define BLUEFRUIT_LE_IRQ_PIN E6`
A Bluefruit UART friend can be converted to an SPI friend, however this [requires](https://github.com/qmk/qmk_firmware/issues/2274) some reflashing and soldering directly to the MDBT40 chip.
<!-- FIXME: Document bluetooth support more completely. -->
## Bluetooth Rules.mk Options
The currently supported Bluetooth chipsets do not support [N-Key Rollover (NKRO)](../reference_glossary#n-key-rollover-nkro), so `rules.mk` must contain `NKRO_ENABLE = no`.
Add the following to your `rules.mk`:
```make
BLUETOOTH_ENABLE = yes
BLUETOOTH_DRIVER = bluefruit_le # or rn42
```
## Bluetooth Keycodes
This is used when multiple keyboard outputs can be selected. Currently this only allows for switching between USB and Bluetooth on keyboards that support both.
|Key |Aliases |Description |
|---------------------|---------|----------------------------------------------|
|`QK_OUTPUT_AUTO` |`OU_AUTO`|Automatically switch between USB and Bluetooth|
|`QK_OUTPUT_USB` |`OU_USB` |USB only |
|`QK_OUTPUT_BLUETOOTH`|`OU_BT` |Bluetooth only |

View File

@@ -152,14 +152,15 @@ In order to use these features, the following configuration options and function
| Config Flag | Function | Description |
|-----------------------------|-----------------------------------------------------------|--------------------------------------------------------------------------------------------------------|
| `COMBO_TERM_PER_COMBO` | uint16_t get_combo_term(uint16_t index, combo_t \*combo) | Optional per-combo timeout window. (default: `COMBO_TERM`) |
| `COMBO_MUST_HOLD_PER_COMBO` | bool get_combo_must_hold(uint16_t index, combo_t \*combo) | Controls if a given combo should fire immediately on tap or if it needs to be held. (default: `false`) |
| `COMBO_MUST_TAP_PER_COMBO` | bool get_combo_must_tap(uint16_t index, combo_t \*combo) | Controls if a given combo should fire only if tapped within `COMBO_HOLD_TERM`. (default: `false`) |
| `COMBO_MUST_PRESS_IN_ORDER_PER_COMBO` | bool get_combo_must_press_in_order(uint16_t index, combo_t \*combo) | Controls if a given combo should fire only if its keys are pressed in order. (default: `true`) |
| `COMBO_TERM_PER_COMBO` | `uint16_t get_combo_term(uint16_t combo_index, combo_t *combo)` | Optional per-combo timeout window. (default: `COMBO_TERM`) |
| `COMBO_MUST_HOLD_PER_COMBO` | `bool get_combo_must_hold(uint16_t combo_index, combo_t *combo)` | Controls if a given combo should fire immediately on tap or if it needs to be held. (default: `false`) |
| `COMBO_MUST_TAP_PER_COMBO` | `bool get_combo_must_tap(uint16_t combo_index, combo_t *combo)` | Controls if a given combo should fire only if tapped within `COMBO_HOLD_TERM`. (default: `false`) |
| `COMBO_MUST_PRESS_IN_ORDER_PER_COMBO` | `bool get_combo_must_press_in_order(uint16_t combo_index, combo_t *combo)` | Controls if a given combo should fire only if its keys are pressed in order. (default: `true`) |
Examples:
```c
uint16_t get_combo_term(uint16_t index, combo_t *combo) {
#ifdef COMBO_TERM_PER_COMBO
uint16_t get_combo_term(uint16_t combo_index, combo_t *combo) {
// decide by combo->keycode
switch (combo->keycode) {
case KC_X:
@@ -167,7 +168,7 @@ uint16_t get_combo_term(uint16_t index, combo_t *combo) {
}
// or with combo index, i.e. its name from enum.
switch (index) {
switch (combo_index) {
case COMBO_NAME_HERE:
return 9001;
}
@@ -182,8 +183,10 @@ uint16_t get_combo_term(uint16_t index, combo_t *combo) {
return COMBO_TERM;
}
#endif
bool get_combo_must_hold(uint16_t index, combo_t *combo) {
#ifdef COMBO_MUST_HOLD_PER_COMBO
bool get_combo_must_hold(uint16_t combo_index, combo_t *combo) {
// Same as above, decide by keycode, the combo index, or by the keys in the chord.
if (KEYCODE_IS_MOD(combo->keycode) ||
@@ -192,15 +195,17 @@ bool get_combo_must_hold(uint16_t index, combo_t *combo) {
return true;
}
switch (index) {
switch (combo_index) {
case COMBO_NAME_HERE:
return true;
}
return false;
}
#endif
bool get_combo_must_tap(uint16_t index, combo_t *combo) {
#ifdef COMBO_MUST_TAP_PER_COMBO
bool get_combo_must_tap(uint16_t combo_index, combo_t *combo) {
// If you want all combos to be tap-only, just uncomment the next line
// return true
@@ -219,7 +224,9 @@ bool get_combo_must_tap(uint16_t index, combo_t *combo) {
return false;
}
#endif
#ifdef COMBO_MUST_PRESS_IN_ORDER_PER_COMBO
bool get_combo_must_press_in_order(uint16_t combo_index, combo_t *combo) {
switch (combo_index) {
/* List combos here that you want to only activate if their keys
@@ -231,6 +238,7 @@ bool get_combo_must_press_in_order(uint16_t combo_index, combo_t *combo) {
return false;
}
}
#endif
```
### Generic hook to (dis)allow a combo activation
@@ -307,6 +315,50 @@ bool process_combo_key_release(uint16_t combo_index, combo_t *combo, uint8_t key
return false;
}
```
### Customizable key repress
By defining `COMBO_PROCESS_KEY_REPRESS` and implementing `bool process_combo_key_repress(uint16_t combo_index, combo_t *combo, uint8_t key_index, uint16_t keycode)` you can run your custom code when you repress just released key of a combo. By combining it with custom `process_combo_event` we can for example make special handling for Alt+Tab to switch windows, which, on combo F+G activation, registers Alt and presses Tab - then we can switch windows forward by releasing G and pressing it again, or backwards with F key. Here's the full example:
```c
enum combos {
CMB_ALTTAB
};
const uint16_t PROGMEM combo_alttab[] = {KC_F, KC_G, COMBO_END};
combo_t key_combos[COMBO_LENGTH] = {
[CMB_ALTTAB] = COMBO(combo_alttab, KC_NO), // KC_NO to leave processing for process_combo_event
};
void process_combo_event(uint16_t combo_index, bool pressed) {
switch (combo_index) {
case CMB_ALTTAB:
if (pressed) {
register_mods(MOD_LALT);
tap_code(KC_TAB);
} else {
unregister_mods(MOD_LALT);
}
break;
}
}
bool process_combo_key_repress(uint16_t combo_index, combo_t *combo, uint8_t key_index, uint16_t keycode) {
switch (combo_index) {
case CMB_ALTTAB:
switch (keycode) {
case KC_F:
tap_code16(S(KC_TAB));
return true;
case KC_G:
tap_code(KC_TAB);
return true;
}
}
return false;
}
```
### Layer independent combos
If you, for example, use multiple base layers for different key layouts, one for QWERTY, and another one for Colemak, you might want your combos to work from the same key positions on all layers. Defining the same combos again for another layout is redundant and takes more memory. The solution is to just check the keycodes from one layer.

View File

@@ -1,6 +1,6 @@
# Command
Command, formerly known as Magic, is a way to change your keyboard's behavior without having to flash or unplug it to use [Bootmagic Lite](bootmagic). There is a lot of overlap between this functionality and the [Magic Keycodes](../keycodes_magic). Wherever possible we encourage you to use that feature instead of Command.
Command, formerly known as Magic, is a way to change your keyboard's behavior without having to flash or unplug it to use [Bootmagic](bootmagic). There is a lot of overlap between this functionality and the [Magic Keycodes](../keycodes_magic). Wherever possible we encourage you to use that feature instead of Command.
On some keyboards Command is disabled by default. If this is the case, it must be explicitly enabled in your `rules.mk`:

View File

@@ -0,0 +1,142 @@
# Community Modules
Community Modules are a feature within QMK which allows code to be implemented by third parties, making it available for other people to import into their own builds.
These modules can provide implementations which override or enhance normal QMK processing; initialization, key processing, suspend, and shutdown are some of the provided hooks which modules may implement.
## Adding a Community Module to your build
Community Modules have first-class support for [External Userspace](/newbs_external_userspace), and QMK strongly recommends using External Userspace for hosting keymaps and Community Modules together.
Modules must live in either of two locations:
* `<QMK_USERSPACE>/modules/`
* `<QMK_FIRMWARE>/modules/`
A basic module is provided within QMK itself -- `qmk/hello_world` -- which prints out a notification over [HID console](/faq_debug) after 10 seconds, and adds a new keycode, `COMMUNITY_MODULE_HELLO` (aliased to `CM_HELO`) which types `Hello there.` to the active application when the corresponding key is pressed.
To add this module to your build, in your keymap's directory create a `keymap.json` with the following content:
```json
{
"modules": [
"qmk/hello_world"
]
}
```
If you already have a `keymap.json`, you'll need to manually merge the `modules` section into your keymap.
::: warning
Community Modules are not supported by QMK Configurator. If you wish to use Community Modules, you must build your own firmware.
:::
## Adding a Community Module to your External Userspace
Module authors are encouraged to provide a git repository on GitHub which may be imported into a user's external userspace. If a user wishes to import a module repository, they can do the following:
```sh
cd /path/to/your/external/userspace
mkdir -p modules
# Replace the following {user} and {repo} with the author's community module repository
git submodule add https://github.com/{user}/{repo}.git modules/{user}
git submdule update --init --recursive
```
This will ensure the copy of the module is made in your userspace.
Add a new entry into your `keymap.json` with the desired modules, replacing `{user}` and `{module_name}` as appropriate:
```json
{
"modules": [
"qmk/hello_world",
"{user}/{module_name}"
]
}
```
::: info
The module listed in `keymap.json` is the relative path within the `modules/` directory. So long as the module is present _somewhere_ under `modules/`, then the `keymap.json` can refer to that path.
:::
## Writing a QMK Community Module
As stated earlier, Community Module authors are strongly encouraged to provide their modules through git, allowing users to leverage submodules to import functionality.
### `qmk_module.json`
A Community Module is denoted by a `qmk_module.json` file such as the following:
```json
{
"module_name": "Hello World",
"maintainer": "QMK Maintainers",
"features": {
"deferred_exec": true
},
"keycodes": [
{
"key": "COMMUNITY_MODULE_HELLO",
"aliases": ["CM_HELO"]
}
]
}
```
At minimum, the module must provide the `module_name` and `maintainer` fields.
The use of `features` matches the definition normally provided within `keyboard.json` and `info.json`, allowing a module to signal to the build system that it has its own dependencies. In the example above, it enables the _deferred executor_ feature whenever the above module is used in a build.
The `keycodes` array allows a module to provide new keycodes (as well as corresponding aliases) to a keymap.
### `rules.mk` / `post_rules.mk`
These two files follows standard QMK build system logic, allowing for `Makefile`-style customisation as if it were present in the keyboard or keymap.
### `<module>.c`
This file will be automatically added to the build if the filename matches the directory name. For example, the `qmk/hello_world` module contains a `hello_world.c` file, which is automatically added to the build.
::: info
Other files intended to be included must use the normal method of `SRC += my_file.c` inside `rules.mk`.
:::
::: tip
This file should use `ASSERT_COMMUNITY_MODULES_MIN_API_VERSION(1,0,0);` to enforce a minimum version of the API that it requires, ensuring the Community Module is built with a compatible version of QMK. The list of APIs and corresponding version is given at the bottom of this document. Note the use of commas instead of periods.
:::
### `introspection.c` / `introspection.h`
These two files hook into the keymap introspection logic -- the header is prepended before the user keymap, and the C source file is appended after the user keymap.
The header may provide definitions which are useful to the user's `keymap.c`.
The source file may provide functions which allow access to information specified in the user's `keymap.c`.
::: warning
Introspection is a relatively advanced topic within QMK, and existing patterns should be followed. If you need help please [open an issue](https://github.com/qmk/qmk_firmware/issues/new) or [chat with us on Discord](https://discord.gg/qmk).
:::
### Compatible APIs
Community Modules may provide specializations for the following APIs:
| Base API | API Format | Example (`hello_world` module) | API Version |
|----------------------------|-------------------------------------|----------------------------------------|-------------|
| `keyboard_pre_init` | `keyboard_pre_init_<module>` | `keyboard_pre_init_hello_world` | `0.1.0` |
| `keyboard_post_init` | `keyboard_post_init_<module>` | `keyboard_post_init_hello_world` | `0.1.0` |
| `pre_process_record` | `pre_process_record_<module>` | `pre_process_record_hello_world` | `0.1.0` |
| `process_record` | `process_record_<module>` | `process_record_hello_world` | `0.1.0` |
| `post_process_record` | `post_process_record_<module>` | `post_process_record_hello_world` | `0.1.0` |
| `housekeeping_task` | `housekeeping_task_<module>` | `housekeeping_task_hello_world` | `1.0.0` |
| `suspend_power_down` | `suspend_power_down_<module>` | `suspend_power_down_hello_world` | `1.0.0` |
| `suspend_wakeup_init` | `suspend_wakeup_init_<module>` | `suspend_wakeup_init_hello_world` | `1.0.0` |
| `shutdown` | `shutdown_<module>` | `shutdown_hello_world` | `1.0.0` |
| `process_detected_host_os` | `process_detected_host_os_<module>` | `process_detected_host_os_hello_world` | `1.0.0` |
::: info
An unspecified API is disregarded if a Community Module does not provide a specialization for it.
:::
Each API has an equivalent `_<module>_kb()` and `_<module>_user()` hook, as per the normal QMK [`_quantum`, `_kb`, and `_user` functions](/custom_quantum_functions#a-word-on-core-vs-keyboards-vs-keymap).

View File

@@ -1,6 +1,6 @@
# Joystick {#joystick}
This feature provides game controller input as a joystick device supporting up to 6 axes and 32 buttons. Axes can be read either from an [ADC-capable input pin](../drivers/adc), or can be virtual, so that its value is provided by your code.
This feature provides game controller input as a joystick device supporting up to 6 axes, 32 buttons and a hat switch. Axes can be read either from an [ADC-capable input pin](../drivers/adc), or can be virtual, so that its value is provided by your code.
An analog device such as a [potentiometer](https://en.wikipedia.org/wiki/Potentiometer) found on an analog joystick's axes is based on a voltage divider, where adjusting the movable wiper controls the output voltage which can then be read by the microcontroller's ADC.
@@ -18,6 +18,8 @@ By default the joystick driver is `analog`, but you can change this with:
JOYSTICK_DRIVER = digital
```
When using `analog` with ARM, [you must use 3.3v with your Joystick](../drivers/adc). Although ARM boards such as the [Helios](https://keeb.supply/products/0xcb-helios) have 5v pin output, the ADC driver does not support it.
## Configuration {#configuration}
By default, two axes and eight buttons are defined, with a reported resolution of 8 bits (-127 to +127). This can be changed in your `config.h`:
@@ -35,6 +37,42 @@ By default, two axes and eight buttons are defined, with a reported resolution o
You must define at least one button or axis. Also note that the maximum ADC resolution of the supported AVR MCUs is 10-bit, and 12-bit for most STM32 MCUs.
:::
### Hat Switch {#hat-switch}
To enable the 8-way hat switch, add the following to your `config.h`:
```c
#define JOYSTICK_HAS_HAT
````
The position can be set by calling `joystick_set_hat(value)`. The range of values moves clockwise from the top (ie. north), with the default "center" position represented by a value of `-1`:
```
0
7 N 1
NW .--'--. NE
/ \
6 W | -1 | E 2
\ /
SW '--.--' SE
5 S 3
4
```
Alternatively you can use these predefined names:
|Define |Value|Angle|
|------------------------|-----|-----|
|`JOYSTICK_HAT_CENTER` |`-1` | |
|`JOYSTICK_HAT_NORTH` |`0` |0° |
|`JOYSTICK_HAT_NORTHEAST`|`1` |45° |
|`JOYSTICK_HAT_EAST` |`2` |90° |
|`JOYSTICK_HAT_SOUTHEAST`|`3` |135° |
|`JOYSTICK_HAT_SOUTH` |`4` |180° |
|`JOYSTICK_HAT_SOUTHWEST`|`5` |225° |
|`JOYSTICK_HAT_WEST` |`6` |270° |
|`JOYSTICK_HAT_NORTHWEST`|`7` |315° |
### Axes {#axes}
When defining axes for your joystick, you must provide a definition array typically in your `keymap.c`.
@@ -147,6 +185,8 @@ Contains the state of the joystick.
A bit-packed array containing the joystick button states. The size is calculated as `(JOYSTICK_BUTTON_COUNT - 1) / 8 + 1`.
- `int16_t axes[]`
An array of analog values for each defined axis.
- `int8_t hat`
The hat switch position.
- `bool dirty`
Whether the current state needs to be sent to the host.
@@ -220,3 +260,14 @@ Set the value of the given axis.
The axis to set the value of.
- `int16_t value`
The value to set.
---
### `void joystick_set_hat(int8_t value)` {#api-joystick-set-hat}
Set the position of the hat switch.
#### Arguments {#api-joystick-set-hat-arguments}
- `int8_t value`
The hat switch position to set.

139
docs/features/layer_lock.md Normal file
View File

@@ -0,0 +1,139 @@
# Layer Lock
Some [layer switches](../feature_layers#switching-and-toggling-layers) access
the layer by holding the key, including momentary layer `MO(layer)` and layer
tap `LT(layer, key)` keys. You may sometimes need to stay on the layer for a
long period of time. Layer Lock "locks" the current layer to stay on, supposing
it was accessed by one of:
* `MO(layer)` momentary layer switch
* `LT(layer, key)` layer tap
* `OSL(layer)` one-shot layer
* `TT(layer)` layer tap toggle
* `LM(layer, mod)` layer-mod key (the layer is locked, but not the mods)
Press the Layer Lock key again to unlock the layer. Additionally, when a layer
is locked, layer switch keys that turn off the layer such as `TO(other_layer)`
will unlock it.
## How do I enable Layer Lock
In your rules.mk, add:
```make
LAYER_LOCK_ENABLE = yes
```
Pick a key in your keymap on a layer you intend to lock, and assign it the
keycode `QK_LAYER_LOCK` (short alias `QK_LLCK`). Note that locking the base
layer has no effect, so typically, this key is used on layers above the base
layer.
## Example use
Consider a keymap with the following base layer.
![Base layer with a MO(NAV) key.](https://i.imgur.com/DkEhj9x.png)
The highlighted key is a momentary layer switch `MO(NAV)`. Holding it accesses a
navigation layer.
![Nav layer with a Layer Lock key.](https://i.imgur.com/2wUZNWk.png)
Holding the NAV key is fine for brief use, but awkward to continue holding when
using navigation functions continuously. The Layer Lock key comes to the rescue:
1. Hold the NAV key, activating the navigation layer.
2. Tap Layer Lock.
3. Release NAV. The navigation layer stays on.
4. Make use of the arrow keys, etc.
5. Tap Layer Lock or NAV again to turn the navigation layer back off.
A variation that would also work is to put the Layer Lock key on the base layer
and make other layers transparent (`KC_TRNS`) in that position. Pressing the
Layer Lock key locks (or unlocks) the highest active layer, regardless of which
layer the Layer Lock key is on.
## Idle timeout
Optionally, Layer Lock may be configured to unlock if the keyboard is idle
for some time. In config.h, define `LAYER_LOCK_IDLE_TIMEOUT` in units of
milliseconds:
```c
#define LAYER_LOCK_IDLE_TIMEOUT 60000 // Turn off after 60 seconds.
```
## Functions
Use the following functions to query and manipulate the layer lock state.
| Function | Description |
|----------------------------|------------------------------------|
| `is_layer_locked(layer)` | Checks whether `layer` is locked. |
| `layer_lock_on(layer)` | Locks and turns on `layer`. |
| `layer_lock_off(layer)` | Unlocks and turns off `layer`. |
| `layer_lock_invert(layer)` | Toggles whether `layer` is locked. |
## Representing the current Layer Lock state
There is an optional callback `layer_lock_set_user()` that gets called when a
layer is locked or unlocked. This is useful to represent the current lock state
for instance by setting an LED. In keymap.c, define
```c
bool layer_lock_set_user(layer_state_t locked_layers) {
// Do something like `set_led(is_layer_locked(NAV));`
return true;
}
```
The argument `locked_layers` is a bitfield in which the kth bit is on if the kth
layer is locked. Alternatively, you can use `is_layer_locked(layer)` to check if
a given layer is locked.
## Combine Layer Lock with a mod-tap
It is possible to create a [mod-tap MT key](../mod_tap) that acts as a modifier
on hold and Layer Lock on tap. Since Layer Lock is not a [basic
keycode](../keycodes_basic), attempting `MT(mod, QK_LLCK)` is invalid does not
work directly, yet this effect can be achieved through [changing the tap
function](../mod_tap#changing-tap-function). For example, the following
implements a `SFTLLCK` key that acts as Shift on hold and Layer Lock on tap:
```c
#define SFTLLCK LSFT_T(KC_0)
// Use SFTLLCK in your keymap...
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case SFTLLCK:
if (record->tap.count) {
if (record->event.pressed) {
// Toggle the lock on the highest layer.
layer_lock_invert(get_highest_layer(layer_state));
}
return false;
}
break;
// Other macros...
}
return true;
}
```
In the above, `KC_0` is an arbitrary placeholder for the tapping keycode. This
keycode will never be sent, so any basic keycode will do. In
`process_record_user()`, the tap press event is changed to toggle the lock on
the highest layer. Layer Lock can be combined with a [layer-tap LT
key](../feature_layers#switching-and-toggling-layers) similarly.

View File

@@ -154,6 +154,21 @@ User callback, invoked when the leader sequence ends.
---
### `bool leader_add_user(uint16_t keycode)` {#api-leader-add-user}
User callback, invoked when a keycode is added to the leader sequence.
#### Arguments {#api-leader-add-user-arguments}
- `uint16_t keycode`
The keycode to added to the leader sequence.
#### Return Value {#api-leader-add-user-return}
`true` to finish the key sequence, `false` to continue.
---
### `void leader_start(void)` {#api-leader-start}
Begin the leader sequence, resetting the buffer and timer.

View File

@@ -203,6 +203,21 @@ Tips:
* Keep `MOUSEKEY_MOVE_DELTA` at 1. This allows precise movements before the gliding effect starts.
* Mouse wheel options are the same as the default accelerated mode, and do not use inertia.
### Overlapping mouse key control
When additional overlapping mouse key is pressed, the mouse cursor will continue in a new direction with the same acceleration. The following settings can be used to reset the acceleration with new overlapping keys for more precise control if desired:
|Define |Default |Description |
|------------------------------|----------------------|-----------------------------------------------------------------------|
|`MOUSEKEY_OVERLAP_RESET` |undefined |Enables overlapping mouse key control |
|`MOUSEKEY_OVERLAP_MOVE_DELTA` |`MOUSEKEY_MOVE_DELTA` |Step size of reset movement acceleration |
|`MOUSEKEY_OVERLAP_WHEEL_DELTA`|`MOUSEKEY_WHEEL_DELTA`|Step size of reset mouse wheel acceleration |
|`MOUSEKEY_OVERLAP_INTERVAL` |`MOUSEKEY_INTERVAL` |Reset time between cursor movements in milliseconds (Kinetic mode only)|
::: tip
This feature will not be applied on Inertial mode
:::
## Use with PS/2 Mouse and Pointing Device
Mouse keys button state is shared with [PS/2 mouse](ps2_mouse) and [pointing device](pointing_device) so mouse keys button presses can be used for clicks and drags.

View File

@@ -70,17 +70,33 @@ The process is done in steps, generating a number of intermediate results until
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`
* `#define OS_DETECTION_DEBOUNCE 250`
* defined the debounce time for OS detection, in milliseconds
* defaults to 250ms
* `#define OS_DETECTION_KEYBOARD_RESET`
* enables the keyboard reset upon a USB device reinitilization, such as switching devices on some KVMs
* enables the keyboard reset upon a USB device reinitilization
* this setting may help with detection issues when switching between devices on some KVMs (see [Troubleshooting](#troubleshooting))
* `#define OS_DETECTION_SINGLE_REPORT`
* allows the report callbacks to be called only once, when the OS detection result is considered stable
* subsequent changes in the detection results, if any, are ignored
* this setting may help with delayed stability issues when switching devices on some KVMs (see [Troubleshooting](#troubleshooting))
## Troubleshooting
Some KVMs and USB switches may cause issues when the OS detection is turned on.
Here is a list of common issues and how to fix them:
* **Problem**: _keyboard won't redetect the OS when switching between machines using a KVM_
* **Explanation**: some KVMs keep the USB controller powered on during the switch and OS
detection happens when the USB device description is being assembled.
* **Solution**: use `OS_DETECTION_KEYBOARD_RESET` to force the keyboard to reset upon switching.
* **Problem**: _keyboard OS detection callback gets invoked even minuted after startup_
* **Explanation**: some OSes, notably macOS on ARM-based Macs, may cause this behavior.
The actual cause is not known at this time.'
* **Solution**: use `OS_DETECTION_SINGLE_REPORT` to suppress repeated callback invocations.
## Debug

View File

@@ -394,6 +394,7 @@ Ideally, new sensor hardware should be added to `drivers/sensors/` and `quantum/
| Setting | Description | Default |
| ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | ------------- |
| `MOUSE_EXTENDED_REPORT` | (Optional) Enables support for extended mouse reports. (-32767 to 32767, instead of just -127 to 127). | _not defined_ |
| `WHEEL_EXTENDED_REPORT` | (Optional) Enables support for extended wheel reports. (-32767 to 32767, instead of just -127 to 127). | _not defined_ |
| `POINTING_DEVICE_ROTATION_90` | (Optional) Rotates the X and Y data by 90 degrees. | _not defined_ |
| `POINTING_DEVICE_ROTATION_180` | (Optional) Rotates the X and Y data by 180 degrees. | _not defined_ |
| `POINTING_DEVICE_ROTATION_270` | (Optional) Rotates the X and Y data by 270 degrees. | _not defined_ |

View File

@@ -90,18 +90,22 @@ PS2_ENABLE = yes
PS2_DRIVER = interrupt
```
In your keyboard config.h:
In your keyboard `config.h`:
```c
#define PS2_CLOCK_PIN A8
#define PS2_DATA_PIN A9
```
And in the chibios specifig halconf.h:
```c
#define PAL_USE_CALLBACKS TRUE
```
And in the ChibiOS specific `halconf.h`:
```c
#pragma once
#define PAL_USE_CALLBACKS TRUE // [!code focus]
#include_next <halconf.h>
```
### USART Version {#usart-version}

View File

@@ -81,38 +81,21 @@ As mentioned earlier, the center of the keyboard by default is expected to be `{
## Keycodes {#keycodes}
All RGB keycodes are currently shared with the RGBLIGHT system:
|Key |Aliases |Description |
|-------------------|----------|--------------------------------------------------------------------------------------|
|`RGB_TOG` | |Toggle RGB lighting on or off |
|`RGB_MODE_FORWARD` |`RGB_MOD` |Cycle through modes, reverse direction when Shift is held |
|`RGB_MODE_REVERSE` |`RGB_RMOD`|Cycle through modes in reverse, forward direction when Shift is held |
|`RGB_HUI` | |Increase hue, decrease hue when Shift is held |
|`RGB_HUD` | |Decrease hue, increase hue when Shift is held |
|`RGB_SAI` | |Increase saturation, decrease saturation when Shift is held |
|`RGB_SAD` | |Decrease saturation, increase saturation when Shift is held |
|`RGB_VAI` | |Increase value (brightness), decrease value when Shift is held |
|`RGB_VAD` | |Decrease value (brightness), increase value when Shift is held |
|`RGB_SPI` | |Increase effect speed (does not support eeprom yet), decrease speed when Shift is held|
|`RGB_SPD` | |Decrease effect speed (does not support eeprom yet), increase speed when Shift is held|
|`RGB_MODE_PLAIN` |`RGB_M_P` |Static (no animation) mode |
|`RGB_MODE_BREATHE` |`RGB_M_B` |Breathing animation mode |
|`RGB_MODE_RAINBOW` |`RGB_M_R` |Full gradient scrolling left to right (uses the `RGB_MATRIX_CYCLE_LEFT_RIGHT` mode) |
|`RGB_MODE_SWIRL` |`RGB_M_SW`|Full gradient spinning pinwheel around center of keyboard (uses `RGB_MATRIX_CYCLE_PINWHEEL` mode) |
* `RGB_MODE_*` keycodes will generally work, but not all of the modes are currently mapped to the correct effects for the RGB Matrix system.
`RGB_MODE_PLAIN`, `RGB_MODE_BREATHE`, `RGB_MODE_RAINBOW`, and `RGB_MODE_SWIRL` are the only ones that are mapped properly. The rest don't have a direct equivalent, and are not mapped.
::: tip
`RGB_*` keycodes cannot be used with functions like `tap_code16(RGB_HUD)` as they're not USB HID keycodes. If you wish to replicate similar behaviour in custom code within your firmware (e.g. inside `encoder_update_user()` or `process_record_user()`), the equivalent [RGB functions](#functions) should be used instead.
:::
::: warning
By default, if you have both the [RGB Light](rgblight) and the RGB Matrix feature enabled, these keycodes will work for both features, at the same time. You can disable the keycode functionality by defining the `*_DISABLE_KEYCODES` option for the specific feature.
:::
|Key |Aliases |Description |
|-------------------------------|---------|-----------------------------------|
|`QK_RGB_MATRIX_ON` |`RM_ON` |Turn on RGB Matrix |
|`QK_RGB_MATRIX_OFF` |`RM_OFF` |Turn off RGB Matrix |
|`QK_RGB_MATRIX_TOGGLE` |`RM_TOGG`|Toggle RGB Matrix on or off |
|`QK_RGB_MATRIX_MODE_NEXT` |`RM_NEXT`|Cycle through animations |
|`QK_RGB_MATRIX_MODE_PREVIOUS` |`RM_PREV`|Cycle through animations in reverse|
|`QK_RGB_MATRIX_HUE_UP` |`RM_HUEU`|Cycle through hue |
|`QK_RGB_MATRIX_HUE_DOWN` |`RM_HUED`|Cycle through hue in reverse |
|`QK_RGB_MATRIX_SATURATION_UP` |`RM_SATU`|Increase the saturation |
|`QK_RGB_MATRIX_SATURATION_DOWN`|`RM_SATD`|Decrease the saturation |
|`QK_RGB_MATRIX_VALUE_UP` |`RM_VALU`|Increase the brightness level |
|`QK_RGB_MATRIX_VALUE_DOWN` |`RM_VALD`|Decrease the brightness level |
|`QK_RGB_MATRIX_SPEED_UP` |`RM_SPDU`|Increase the animation speed |
|`QK_RGB_MATRIX_SPEED_DOWN` |`RM_SPDD`|Decrease the animation speed |
## RGB Matrix Effects {#rgb-matrix-effects}
@@ -289,7 +272,7 @@ Solid reactive effects will pulse RGB light on key presses with user configurabl
#define RGB_MATRIX_SOLID_REACTIVE_GRADIENT_MODE
```
Gradient mode will loop through the color wheel hues over time and its duration can be controlled with the effect speed keycodes (`RGB_SPI`/`RGB_SPD`).
Gradient mode will loop through the color wheel hues over time and its duration can be controlled with the effect speed keycodes (`RM_SPDU`/`RM_SPDD`).
## Custom RGB Matrix Effects {#custom-rgb-matrix-effects}
@@ -396,7 +379,6 @@ These are defined in [`color.h`](https://github.com/qmk/qmk_firmware/blob/master
#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
#define RGB_TRIGGER_ON_KEYDOWN // Triggers RGB keypress events on key down. This makes RGB control feel more responsive. This may cause RGB to not function properly on some boards
@@ -496,18 +478,18 @@ This example sets the modifiers to be a specific color based on the layer state.
```c
bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
HSV hsv = {0, 255, 255};
hsv_t hsv = {0, 255, 255};
if (layer_state_is(layer_state, 2)) {
hsv = (HSV){130, 255, 255};
hsv = (hsv_t){130, 255, 255};
} else {
hsv = (HSV){30, 255, 255};
hsv = (hsv_t){30, 255, 255};
}
if (hsv.v > rgb_matrix_get_val()) {
hsv.v = rgb_matrix_get_val();
}
RGB rgb = hsv_to_rgb(hsv);
rgb_t rgb = hsv_to_rgb(hsv);
for (uint8_t i = led_min; i < led_max; i++) {
if (HAS_FLAGS(g_led_config.flags[i], 0x01)) { // 0x01 == LED_FLAG_MODIFIER
@@ -873,13 +855,13 @@ Set the global effect hue, saturation, and value (brightness). New state is not
---
### `HSV rgb_matrix_get_hsv(void)` {#api-rgb-matrix-get-hsv}
### `hsv_t rgb_matrix_get_hsv(void)` {#api-rgb-matrix-get-hsv}
Get the current global effect hue, saturation, and value (brightness).
#### Return Value {#api-rgb-matrix-get-hsv-return}
The current effect HSV as an `HSV` struct.
The current effect HSV as an `hsv_t` struct.
---

View File

@@ -59,6 +59,10 @@ Changing the **Value** sets the overall brightness.<br>
## Keycodes
::: warning
These keycodes also simultaneously control [RGB Matrix](rgb_matrix), if enabled. This behaviour is in the process of being deprecated, so during this time it is recommended to additionally include the dedicated RGB Matrix keycodes to your keymap, and add `#define RGB_MATRIX_DISABLE_SHARED_KEYCODES` to `config.h`.
:::
|Key |Aliases |Description |
|------------------------------|----------|---------------------------------------------------------------------|
|`QK_UNDERGLOW_TOGGLE` |`UG_TOGG` |Toggle RGB lighting on or off |
@@ -87,11 +91,6 @@ Changing the **Value** sets the overall brightness.<br>
These keycodes cannot be used with functions like `tap_code16()` as they are not USB HID keycodes. If you wish to replicate similar behaviour in custom code within your firmware (e.g. inside `encoder_update_user()` or `process_record_user()`), the equivalent [RGB functions](#functions) should be used instead.
:::
::: warning
By default, if you have both the RGB Light and the [RGB Matrix](rgb_matrix) feature enabled, these keycodes will work for both features, at the same time. You can disable the keycode functionality by defining the `*_DISABLE_KEYCODES` option for the specific feature.
:::
## Configuration
Your RGB lighting can be configured by placing these `#define`s in your `config.h`:
@@ -104,7 +103,6 @@ Your RGB lighting can be configured by placing these `#define`s in your `config.
|`RGBLIGHT_LIMIT_VAL` |`255` |The maximum brightness level |
|`RGBLIGHT_SLEEP` |*Not defined* |If defined, the RGB lighting will be switched off when the host goes to sleep |
|`RGBLIGHT_SPLIT` |*Not defined* |If defined, synchronization functionality for split keyboards is added |
|`RGBLIGHT_DISABLE_KEYCODES`|*Not defined* |If defined, disables the ability to control RGB Light from the keycodes. You must use code functions to control the feature|
|`RGBLIGHT_DEFAULT_MODE` |`RGBLIGHT_MODE_STATIC_LIGHT`|The default mode to use upon clearing the EEPROM |
|`RGBLIGHT_DEFAULT_HUE` |`0` (red) |The default hue to use upon clearing the EEPROM |
|`RGBLIGHT_DEFAULT_SAT` |`UINT8_MAX` (255) |The default saturation to use upon clearing the EEPROM |

View File

@@ -444,7 +444,7 @@ This setting implies that `RGBLIGHT_SPLIT` is enabled, and will forcibly enable
#define SPLIT_USB_DETECT
```
Enabling this option changes the startup behavior to listen for an active USB communication to delegate which part is master and which is slave. With this option enabled and theres's USB communication, then that half assumes it is the master, otherwise it assumes it is the slave.
Enabling this option changes the startup behavior to listen for an active USB communication to delegate which part is master and which is slave. With this option enabled and active USB communication, then that half assumes it is the master, otherwise it assumes it is the slave.
Without this option, the master is the half that can detect voltage on the physical USB connection (VBUS detection).

View File

@@ -273,12 +273,12 @@ Now, at the bottom of your `keymap.c` file, you'll need to add the following:
* How to figure out tap dance state: interrupted and pressed.
*
* Interrupted: If the state of a dance is "interrupted", that means that another key has been hit
* under the tapping term. This is typically indicitive that you are trying to "tap" the key.
* under the tapping term. This is typically indicative that you are trying to "tap" the key.
*
* Pressed: Whether or not the key is still being pressed. If this value is true, that means the tapping term
* has ended, but the key is still being pressed down. This generally means the key is being "held".
*
* One thing that is currenlty not possible with qmk software in regards to tap dance is to mimic the "permissive hold"
* One thing that is currently not possible with qmk software in regards to tap dance is to mimic the "permissive hold"
* feature. In general, advanced tap dances do not work well if they are used with commonly typed letters.
* For example "A". Tap dances are best used on non-letter keys that are not hit while typing letters.
*
@@ -290,7 +290,7 @@ Now, at the bottom of your `keymap.c` file, you'll need to add the following:
* Not a key that is used frequently to double tap, for example 'tab' is often double tapped in a terminal, or
* in a web form. So 'tab' would be a poor choice for a tap dance.
* Letters used in common words as a double. For example 'p' in 'pepper'. If a tap dance function existed on the
* letter 'p', the word 'pepper' would be quite frustating to type.
* letter 'p', the word 'pepper' would be quite frustrating to type.
*
* For the third point, there does exist the 'TD_DOUBLE_SINGLE_TAP', however this is not fully tested
*

58
docs/features/wireless.md Normal file
View File

@@ -0,0 +1,58 @@
# Wireless / Bluetooth
## Bluetooth Known Supported Hardware
Currently Bluetooth support is limited to AVR based chips. For Bluetooth 2.1, QMK has support for RN-42 modules. For more recent BLE protocols, currently only the Adafruit Bluefruit SPI Friend is directly supported. BLE is needed to connect to iOS devices. Note iOS does not support mouse input.
|Board |Bluetooth Protocol |Connection Type|rules.mk |Bluetooth Chip|
|----------------------------------------------------------------|--------------------|---------------|---------------------------------|--------------|
|Roving Networks RN-42 (Sparkfun Bluesmirf) |Bluetooth Classic |UART |`BLUETOOTH_DRIVER = rn42` |RN-42 |
|[Bluefruit LE SPI Friend](https://www.adafruit.com/product/2633)|Bluetooth Low Energy|SPI |`BLUETOOTH_DRIVER = bluefruit_le`|nRF51822 |
Not Supported Yet but possible:
* [Bluefruit LE UART Friend](https://www.adafruit.com/product/2479). [Possible tmk implementation found in](https://github.com/tmk/tmk_keyboard/issues/514)
* HC-05 boards flashed with RN-42 firmware. They apparently both use the CSR BC417 Chip. Flashing it with RN-42 firmware gives it HID capability.
* Sparkfun Bluetooth Mate
* HM-13 based boards
### Adafruit BLE SPI Friend
Currently The only bluetooth chipset supported by QMK is the Adafruit Bluefruit SPI Friend. It's a Nordic nRF51822 based chip running Adafruit's custom firmware. Data is transmitted via Adafruit's SDEP over Hardware SPI. The [Feather 32u4 Bluefruit LE](https://www.adafruit.com/product/2829) is supported as it's an AVR mcu connected via SPI to the Nordic BLE chip with Adafruit firmware. If Building a custom board with the SPI friend it would be easiest to just use the pin selection that the 32u4 feather uses but you can change the pins in the config.h options with the following defines:
* `#define BLUEFRUIT_LE_RST_PIN D4`
* `#define BLUEFRUIT_LE_CS_PIN B4`
* `#define BLUEFRUIT_LE_IRQ_PIN E6`
A Bluefruit UART friend can be converted to an SPI friend, however this [requires](https://github.com/qmk/qmk_firmware/issues/2274) some reflashing and soldering directly to the MDBT40 chip.
<!-- FIXME: Document bluetooth support more completely. -->
## Bluetooth Rules.mk Options
The currently supported Bluetooth chipsets do not support [N-Key Rollover (NKRO)](../reference_glossary#n-key-rollover-nkro), so `rules.mk` must contain `NKRO_ENABLE = no`.
Add the following to your `rules.mk`:
```make
BLUETOOTH_ENABLE = yes
BLUETOOTH_DRIVER = bluefruit_le # or rn42
```
## Bluetooth Keycodes
This is used when multiple keyboard outputs can be selected. Currently this only allows for switching between USB and Bluetooth on keyboards that support both.
| Key | Aliases | Description |
|-----------------------------|-----------|-----------------------------------------------------------------------------------------------|
| `QK_OUTPUT_AUTO` | `OU_AUTO` | Automatically switch to USB when plugged in, otherwise use wireless |
| `QK_OUTPUT_NEXT` | `OU_NEXT` | Cycle forwards through USB, Bluetooth, and 2.4GHz (when available) **(not yet implemented)** |
| `QK_OUTPUT_PREV` | `OU_PREV` | Cycle backwards through USB, Bluetooth, and 2.4GHz (when available) **(not yet implemented)** |
| `QK_OUTPUT_NONE` | `OU_NONE` | Disable all output **(not yet implemented)** |
| `QK_OUTPUT_USB` | `OU_USB` | Output to USB only |
| `QK_OUTPUT_2P4GHZ` | `OU_2P4G` | Output to 2.4GHz only **(not yet implemented)** |
| `QK_OUTPUT_BLUETOOTH` | `OU_BT` | Output to Bluetooth only |
| `QK_BLUETOOTH_PROFILE_NEXT` | `BT_NEXT` | Move to the next Bluetooth profile **(not yet implemented)** |
| `QK_BLUETOOTH_PROFILE_PREV` | `BT_PREV` | Move to the previous Bluetooth profile **(not yet implemented)** |
| `QK_BLUETOOTH_UNPAIR` | `BT_UNPR` | Un-pair the current Bluetooth profile **(not yet implemented)** |
| `QK_BLUETOOTH_PROFILE1` | `BT_PRF1` | Swap to Bluetooth profile #1 **(not yet implemented)** |
| `QK_BLUETOOTH_PROFILE2` | `BT_PRF2` | Swap to Bluetooth profile #2 **(not yet implemented)** |
| `QK_BLUETOOTH_PROFILE3` | `BT_PRF3` | Swap to Bluetooth profile #3 **(not yet implemented)** |
| `QK_BLUETOOTH_PROFILE4` | `BT_PRF4` | Swap to Bluetooth profile #4 **(not yet implemented)** |
| `QK_BLUETOOTH_PROFILE5` | `BT_PRF5` | Swap to Bluetooth profile #5 **(not yet implemented)** |

View File

@@ -53,7 +53,7 @@ QMK maintains [a fork of the LUFA DFU bootloader](https://github.com/qmk/lufa/tr
//#define QMK_LED E6
//#define QMK_SPEAKER C6
```
Currently we do not recommend making `QMK_ESC` the same key as the one designated for [Bootmagic Lite](features/bootmagic), as holding it down will cause the MCU to loop back and forth between entering and exiting the bootloader.
Currently we do not recommend making `QMK_ESC` the same key as the one designated for [Bootmagic](features/bootmagic), as holding it down will cause the MCU to loop back and forth between entering and exiting the bootloader.
The manufacturer and product strings are automatically pulled from `config.h`, with " Bootloader" appended to the product string.
@@ -209,7 +209,7 @@ To enable the additional features, add the following defines to your `config.h`:
//#define QMK_SPEAKER C6
```
Currently we do not recommend making `QMK_ESC` the same key as the one designated for [Bootmagic Lite](features/bootmagic), as holding it down will cause the MCU to loop back and forth between entering and exiting the bootloader.
Currently we do not recommend making `QMK_ESC` the same key as the one designated for [Bootmagic](features/bootmagic), as holding it down will cause the MCU to loop back and forth between entering and exiting the bootloader.
The manufacturer and product strings are automatically pulled from `config.h`, with " Bootloader" appended to the product string.
@@ -345,6 +345,39 @@ Flashing sequence:
3. Flash a .bin file
4. Reset the device into application mode (may be done automatically)
## AT32 DFU
All AT32 MCUs come preloaded with a factory bootloader that cannot be modified nor deleted.
To ensure compatibility with the AT32-DFU bootloader, make sure this block is present in your `rules.mk`:
```make
# Bootloader selection
BOOTLOADER = at32-dfu
```
Compatible flashers:
* [dfu-util](https://dfu-util.sourceforge.net/) / `:dfu-util` target in QMK (recommended command line)
```
dfu-util -a 0 -d 2E3C:DF11 -s 0x8000000:leave -D <filename>
```
Flashing sequence:
1. Enter the bootloader using any of the following methods:
* Tap the `QK_BOOT` keycode
* If a reset circuit is present, tap the `RESET` button on the PCB; some boards may also have a toggle switch that must be flipped
* Otherwise, you need to bridge `BOOT0` to VCC (via `BOOT0` button or jumper), short `RESET` to GND (via `RESET` button or jumper), and then let go of the `BOOT0` bridge
2. Wait for the OS to detect the device
3. Flash a .bin file
4. Reset the device into application mode (may be done automatically)
### `make` Targets
* `:dfu-util`: Waits until an AT32 bootloader device is available, and then flashes the firmware.
* `:dfu-util-split-left` and `:dfu-util-split-right`: Flashes the firmware as with `:dfu-util`, but also sets the handedness setting in EEPROM.
## tinyuf2
Keyboards may opt into supporting the tinyuf2 bootloader. This is currently only supported on F303/F401/F411.

View File

@@ -5,6 +5,7 @@ This project includes a Docker workflow that will allow you to build a new firmw
## Requirements
The main prerequisite is a working `docker` or `podman` install.
* [Docker CE](https://docs.docker.com/install/#supported-platforms)
* [Podman](https://podman.io/getting-started/installation)
@@ -18,6 +19,7 @@ cd qmk_firmware
```
Run the following command to build a keymap:
```
util/docker_build.sh <keyboard>:<keymap>
# For example: util/docker_build.sh planck/rev6:default
@@ -32,6 +34,8 @@ util/docker_build.sh keyboard:keymap:target
# For example: util/docker_build.sh planck/rev6:default:flash
```
Note that mass storage bootloaders are not supported by the `flash` target. In this case you will have to manually copy the firmware file to the keyboard.
You can also start the script without any parameters, in which case it will ask you to input the build parameters one by one, which you may find easier to use:
```
@@ -46,6 +50,13 @@ By default docker or podman are automatically detected and docker is preferred o
RUNTIME="podman" util/docker_build.sh keyboard:keymap:target
```
If flashing is not required, it's possible to run the container as unprivileged (on Linux), and without docker-machine (on Windows/macOS):
```
SKIP_FLASHING_SUPPORT=1 util/docker_build.sh keyboard:keymap:target
```
## FAQ
### Why can't I flash on Windows/macOS

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