Compare commits

...

325 Commits

Author SHA1 Message Date
QMK Bot
ea5ef746e2 Merge remote-tracking branch 'origin/master' into develop 2025-06-23 22:02:32 +00:00
Andrew Litt
de5fd5d4e2 Orient side LEDs on GMMK2 65% ANSI to match the rest of the matrix (#25402)
Orient side LEDs on GMMK2 65% to match the rest of the matrix

On GMMK2 P65 ANSI, the side LEDs were mapped to the wrong sides
of the keyboard resulting in effects not being consistent with
the key surface. This was most jarring in effects like pinwheel
where the pattern involves the side LEDs and there is a distinctly
different flow on the left and right halves of the board.

This PR swaps the side LEDs in the map so that they are correctly
oriented. Applied to both ANSI and ISO variants.
2025-06-23 16:01:56 -06:00
QMK Bot
8c8f4b3c06 Merge remote-tracking branch 'origin/master' into develop 2025-06-23 09:19:23 +00:00
Andrew Litt
f5b02fbc11 Fix inverted encoder on Inland KB83 (#25400) 2025-06-23 10:18:48 +01:00
QMK Bot
55e1acec07 Merge remote-tracking branch 'origin/master' into develop 2025-06-22 07:12:29 +00:00
Ryan
611460c9db ymdk/id75: fix keymap (#25396) 2025-06-22 17:11:53 +10:00
QMK Bot
584e390703 Merge remote-tracking branch 'origin/master' into develop 2025-06-22 02:34:26 +00:00
Ryan
1ac255fd1c [docs] Change GUI key references to "Meta" -> "Super" (#25394) 2025-06-22 12:33:53 +10:00
QMK Bot
2c152c3425 Merge remote-tracking branch 'origin/master' into develop 2025-06-21 11:32:22 +00:00
YodaDistro
664c0bc4c3 Add YodaDistro Macropad (#25174)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
2025-06-21 12:31:49 +01:00
QMK Bot
8a06238054 Merge remote-tracking branch 'origin/master' into develop 2025-06-19 21:25:05 +00:00
ClownFish
6626084cb8 fix incorrect damapad layout macros (#25364) 2025-06-19 22:24:37 +01:00
Marius
bb27c69675 Applied usb detection fixes from Squalius-cephalus (#25380)
Co-authored-by: Dr. Marius Feilhauer <software@feilhauer.de>
2025-06-19 22:23:53 +01:00
QMK Bot
25d7ac9ecc Merge remote-tracking branch 'origin/master' into develop 2025-06-19 21:16:27 +00:00
Christoffer Larsen
03a53e29af Fix Enter key matrix coordinates for smk65/revf ISO layout (#25373) 2025-06-19 22:15:54 +01:00
QMK Bot
681d6a29e6 Merge remote-tracking branch 'origin/master' into develop 2025-06-18 09:45:23 +00:00
Xelus22
096696d86d [Bug] Fix usb_endpoint_interface_lut multiple def compile err (#25378) 2025-06-18 10:44:49 +01:00
Joel Challis
d044a6bcc2 Configure boards to use development_board - DE (#25369) 2025-06-17 04:23:33 +01:00
Joel Challis
091eac1fce Configure boards to use development_board - FGHIJ (#25370) 2025-06-17 04:23:22 +01:00
QMK Bot
02bed7e5a5 Merge remote-tracking branch 'origin/master' into develop 2025-06-15 01:56:45 +00:00
Nick Brassel
7f9ceef3dd More compiledb fixes. (#25355) 2025-06-15 11:56:10 +10:00
Dasky
7919848324 Add core handling for pointing device failures. (#25315) 2025-06-14 13:55:35 +01:00
QMK Bot
a4436b32df Merge remote-tracking branch 'origin/master' into develop 2025-06-14 03:12:31 +00:00
luroc
7ecdb57414 [Docs] Fix example code on key_overrides.md (#25367)
The description of the code snippet says right alt, but the snippet itself contained the right control keycode
2025-06-13 21:11:58 -06:00
QMK Bot
0f9c1c57b4 Merge remote-tracking branch 'origin/master' into develop 2025-06-12 23:40:58 +00:00
Álvaro A. Volpato
dcdd037276 Add support for Protagonist PCBs (#22918) 2025-06-13 00:40:25 +01:00
QMK Bot
e725cdbc4b Merge remote-tracking branch 'origin/master' into develop 2025-06-12 12:43:50 +00:00
ClownFish
8ae01715d6 fix winry25tc lightsout keymap (#25353) 2025-06-12 13:43:15 +01:00
QMK Bot
9ef5dcd113 Merge remote-tracking branch 'origin/master' into develop 2025-06-12 12:31:42 +00:00
oxnh
f4aa8ae845 Add keyboard Lily58 Koca (#24847)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
2025-06-12 13:31:05 +01:00
QMK Bot
ef6e9a5312 Merge remote-tracking branch 'origin/master' into develop 2025-06-11 04:30:11 +00:00
Nick Brassel
0516cf5ed8 Specify language standard when generating compilation database. (#25354) 2025-06-11 14:29:37 +10:00
Joel Challis
5bdeb7dad1 Migrate remaining DEFAULT_FOLDER to keyboard aliases (#25291) 2025-06-10 22:20:34 +01:00
ClownFish
8347a6688f update winry25 VID and PID (#25351) 2025-06-10 21:21:00 +01:00
QMK Bot
3ce196ff52 Merge remote-tracking branch 'origin/master' into develop 2025-06-09 18:36:25 +00:00
Pablo Martínez
802a199bbd [Bugfix] User eeconfig utility macros (#25350) 2025-06-09 19:35:48 +01:00
Joel Challis
0326355edc Remove DEFAULT_FOLDER handling (#23281) 2025-06-09 05:08:56 +01:00
QMK Bot
94f1aade5c Merge remote-tracking branch 'origin/master' into develop 2025-06-09 01:44:08 +00:00
VeyPatch
1a54ecf246 [Keyboard] Add splitkb.com's Halcyon Corne rev2 (#25143)
Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
2025-06-09 02:43:31 +01:00
QMK Bot
fe54121cfa Merge remote-tracking branch 'origin/master' into develop 2025-06-08 17:25:36 +00:00
VeyPatch
319844407c [Keyboard] Add splitkb.com's Halcyon Ferris rev1 (#25145)
Co-authored-by: Thomas Baart <support@splitkb.com>
2025-06-08 18:24:54 +01:00
QMK Bot
77b2742863 Merge remote-tracking branch 'origin/master' into develop 2025-06-08 17:05:32 +00:00
VeyPatch
e57226d9a2 [Keyboard] Add splitkb.com's Halcyon Lily58 rev2 (#25144) 2025-06-08 18:04:56 +01:00
Joel Challis
021c3cc125 Configure boards to use development_board - LM (#25341) 2025-06-07 22:17:38 +01:00
Joel Challis
0b3a54f9f2 maple_computing/launchpad - Remove broken default_rgb keymap (#25342) 2025-06-07 16:50:54 +01:00
Nick Brassel
7808f8f56b Add {rgb|led}_matrix_get_mode_name(). (#25344) 2025-06-07 22:56:58 +10:00
QMK Bot
e3c8c23d91 Merge remote-tracking branch 'origin/master' into develop 2025-06-07 04:09:31 +00:00
Nick Brassel
1646000c9b [tzarc/djinn] Include community modules in RGB naming. (#25343) 2025-06-07 14:08:56 +10:00
Joel Challis
b4cabc3cf7 Configure boards to use development_board - NO (#25338) 2025-06-07 01:31:42 +01:00
spacehangover
e8e3c7addb Added Encoder support for Soyuz (#25279) 2025-06-07 01:31:08 +01:00
QMK Bot
608ce78778 Merge remote-tracking branch 'origin/master' into develop 2025-06-05 23:03:27 +00:00
bytetinkerer
824ad46e5d add kinesis/kint32 (#25013)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2025-06-06 00:02:38 +01:00
QMK Bot
977433443a Merge remote-tracking branch 'origin/master' into develop 2025-06-05 15:30:32 +00:00
Nick Brassel
0d477bf570 More Yunzii notes regarding refusal to provide sources. (#25335) 2025-06-05 16:29:53 +01:00
QMK Bot
5bf8248dd3 Merge remote-tracking branch 'origin/master' into develop 2025-06-04 12:44:39 +00:00
obosob
2e3664d2c0 Add CrossDIY to license_violations.md (#25324)
Co-authored-by: jack <jack@pngu.org>
2025-06-04 22:42:57 +10:00
Joel Challis
fad44ae10c [Docs] Fix PS/2 Driver headers (#25332) 2025-06-04 22:41:37 +10:00
Joel Challis
7b36727ed1 Remove process_action_kb callback (#25331) 2025-06-04 22:37:40 +10:00
Joel Challis
f096e5a3f3 Relocate remaining process_record_quantum keycodes (#25328) 2025-06-03 23:44:46 +01:00
QMK Bot
53c6fa5de7 Merge remote-tracking branch 'origin/master' into develop 2025-06-03 12:04:35 +00:00
Dasky
8525ab03de Fix dynamic keymap static assert (#25327) 2025-06-03 13:03:59 +01:00
Joel Challis
97168180cf Configure boards to use development_board - R (#25316) 2025-06-02 19:24:29 +01:00
Joel Challis
57374489da Configure boards to use development_board - P (#25317) 2025-06-02 19:24:23 +01:00
Stephen Ostermiller
1d145c7511 Fix quantum.c keycode handling (#25322) 2025-06-02 19:24:02 +01:00
QMK Bot
820202cd53 Merge remote-tracking branch 'origin/master' into develop 2025-05-28 06:06:21 +00:00
Joel Challis
faf77f1651 Fix typo in Battery Driver docs (#25312)
* Fix typo in Battery Driver docs

* Update battery.md
2025-05-28 16:05:44 +10:00
QMK Bot
4c773971a7 Merge remote-tracking branch 'origin/master' into develop 2025-05-28 00:47:37 +00:00
Idkau
2b8aeed02b Fix Sofle OLED layer indication code (#25311)
Fixed oled raise/lower layer order and added adjust layer text to oled display
2025-05-27 18:47:00 -06:00
QMK Bot
9e8e9af485 Merge remote-tracking branch 'origin/master' into develop 2025-05-27 22:24:59 +00:00
Sergey Radionov
9e2d8999bf Fix reference to wrong layer when LM used with right modifiers (#25303) 2025-05-27 23:24:20 +01:00
QMK Bot
4f60946513 Merge remote-tracking branch 'origin/master' into develop 2025-05-27 17:08:00 +00:00
dependabot[bot]
c8a39b69a0 Bump vite from 5.4.18 to 5.4.19 in /builddefs/docsgen (#25306)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.18 to 5.4.19.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.4.19/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.19/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 5.4.19
  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-05-27 18:07:22 +01:00
QMK Bot
ac9318c78f Merge remote-tracking branch 'origin/master' into develop 2025-05-27 13:23:36 +00:00
Dasky
41b1bb4aef Fix dynamic keymap macro only sending first. (#25309) 2025-05-27 14:22:55 +01:00
Nick Brassel
76cf8dff93 Branch point for 2025-05-25 Breaking Change 2025-05-26 21:43:45 +10:00
Nick Brassel
75a037d2f0 Merge remote-tracking branch 'upstream/develop' 2025-05-26 21:41:49 +10:00
Joel Challis
3703699757 2025 Q2 changelog (#25297)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2025-05-26 21:04:52 +10:00
Joel Challis
c97a798af7 Configure boards to use development_board - T (#25294) 2025-05-24 21:20:16 +01:00
Joel Challis
dd871d0105 Configure boards to use development_board - S (#25293) 2025-05-24 21:19:52 +01:00
Joel Challis
ba5c707327 salicylic_acid3/getta25 - Fix oled keymap (#25295) 2025-05-24 19:04:01 +01:00
Joel Challis
8b7c351e56 [Docs] Fix tap_hold code blocks (#25298) 2025-05-24 19:00:22 +01:00
Joel Challis
196285c59c Configure boards to use development_board - UVWXYZ (#25288) 2025-05-23 01:27:00 +01:00
Stefan Kerkmann
f3b974f216 [Fix] lib8tion: enable fixed scale8 and blend functions (#25272)
lib8tion: enable fixed scale8 and blend functions

These FastLED derived lib8tion functions have been fixed and enabled by
default in FastLED. QMK just never set these defines, there is no reason
to keep the buggy implementation. It is assumed that nobody relied on
the buggy behavior.
2025-05-22 22:52:45 +01:00
Joel Challis
243c21568a Configure boards to use development_board - 0-9 (#25287) 2025-05-22 20:49:22 +01:00
Pablo Martínez
955809bd5a Add compiler_support.h (#25274) 2025-05-22 23:31:15 +10:00
Nick Brassel
fa24b0fcce Remove outdated nix support due to bit-rot. (#25280) 2025-05-21 07:17:58 +10:00
Stefan Kerkmann
4f0a0f32f2 [Chore] use {rgblight,rgb_matrix}_hsv_to_rgb overrides (#25271) 2025-05-20 19:23:20 +01:00
ivan
24895c46f3 Move rookiebwoy to ivndbt (#25142) 2025-05-19 22:15:19 +01:00
QMK Bot
190e0eff23 Merge remote-tracking branch 'origin/master' into develop 2025-05-19 20:53:40 +00:00
ClownFish
28720c4d34 add doio/kb03 (#24815)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2025-05-19 13:53:02 -07:00
Nick Brassel
919e2a4f5c Use relative paths for schemas, instead of $id. Enables VScode validation. (#25251) 2025-05-19 22:10:39 +10:00
Stefan Kerkmann
f686ad9e63 [Core] STM32G0x1 support (#24301) 2025-05-19 15:51:28 +10:00
Nick Brassel
a4ef1ae736 gcc15 AVR compilation fixes (#25238) 2025-05-19 09:22:31 +10:00
Florent Linguenheld
81355045cc Chew folders (#24785) 2025-05-18 18:53:00 +01:00
QMK Bot
bcd06f03a5 Merge remote-tracking branch 'origin/master' into develop 2025-05-18 15:43:21 +00:00
Joel Challis
02517bd806 Update PR checklist notes on custom matrix (#25240) 2025-05-18 16:42:43 +01:00
QMK Bot
6b25bfb0ff Merge remote-tracking branch 'origin/master' into develop 2025-05-18 15:29:20 +00:00
Joel Challis
0f948fe039 Add Waveshare RP2040-Keyboard-3 support (#25269) 2025-05-18 16:28:42 +01:00
QMK Bot
fffa553c25 Merge remote-tracking branch 'origin/master' into develop 2025-05-18 03:29:00 +00:00
Infos
e73b3c08a0 Add Zeropad (#24737)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2025-05-17 20:28:24 -07:00
Joel Challis
fa35be5135 Resolve miscellaneous keyboard lint warnings (#25268) 2025-05-16 17:35:17 +01:00
Joel Challis
0b6a460b7f Remove duplicate of SPI default config from keyboards (#25266) 2025-05-16 17:35:05 +01:00
QMK Bot
15e45b1d4b Merge remote-tracking branch 'origin/master' into develop 2025-05-16 16:09:52 +00:00
Danny
40d0de39b7 Add BDN9 Rev. 3 (#25261) 2025-05-16 12:08:51 -04:00
Joel Challis
05ff5443b1 Deprecate usb.force_nkro/FORCE_NKRO (#25262) 2025-05-14 22:02:43 +10:00
QMK Bot
e553cf7214 Merge remote-tracking branch 'origin/master' into develop 2025-05-14 12:01:11 +00:00
Joel Challis
cd95294a25 Remove more USB only branches from NKRO handling (#25263) 2025-05-14 22:01:08 +10:00
Joel Challis
8c108efb0d dlip/haritev2 - Post merge fixes (#25264) 2025-05-14 22:00:33 +10:00
QMK Bot
b4f0314b35 Merge remote-tracking branch 'origin/master' into develop 2025-05-14 10:13:34 +00:00
Dane Lipscombe
59c3612590 Add Harite v2 keyboard (#24975) 2025-05-14 11:12:59 +01:00
QMK Bot
55e4a1c7dc Merge remote-tracking branch 'origin/master' into develop 2025-05-14 03:23:53 +00:00
Wasteland Fluttershy
e0b037c2cd Fixes the numlock indicator for Magic Force MF17 numpad (#25260) 2025-05-13 20:23:16 -07:00
Matti Hiljanen
070dea4a9c Fix OS_DETECTION_KEYBOARD_RESET (#25015)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2025-05-12 12:15:40 +10:00
Pascal Getreuer
f4171412a6 Enable community modules to define LED matrix and RGB matrix effects. (#25187)
Co-authored-by: Joel Challis <git@zvecr.com>
2025-05-12 09:30:19 +10:00
art-was-here
7f42a5bc03 [New Feature/Core] New RGB Matrix Animation "Starlight Smooth" (#25203) 2025-05-12 08:50:36 +10:00
Joel Challis
3e7ce54902 Fix Wear Leveling compilation (#25254) 2025-05-12 08:39:38 +10:00
Joel Challis
88c094908b Add raw_hid support to host driver (#25255) 2025-05-12 08:38:48 +10:00
QMK Bot
c045c3e00c Merge remote-tracking branch 'origin/master' into develop 2025-05-11 05:58:16 +00:00
cyxae
6b1a376aee [Keyboard] Add Jason Hazel’s Bad Wings v2 (#25252)
Co-authored-by: Florent Allard <florent.allard@savoirfairelinux.com>
2025-05-10 22:57:40 -07:00
HorrorTroll
02525f683e Allow LVGL onekey keymap to be able compile for other board (#25005) 2025-05-10 19:26:50 +01:00
Drashna Jaelre
5a57d2115b [Docs] Fix typos introduced by PR #25050 (#25250)
It isn't a drashna PR if there aren't some typos in it somewhere.
2025-05-09 07:18:30 +10:00
Joel Challis
660d248549 Add debounce to duplicated defaults check (#25246) 2025-05-08 01:12:58 +01:00
QMK Bot
1bc3494494 Merge remote-tracking branch 'origin/master' into develop 2025-05-07 17:38:45 +00:00
muge
33a12ca0b6 CXT Studio 12E3: Fix encoder resolutions not applying (#25242)
* add resolution to encoders so they apply

* Tweak default keymap

* replace KC_UNDO with C(KC_Z) as well
2025-05-07 11:38:10 -06:00
QMK Bot
084ed078d6 Merge remote-tracking branch 'origin/master' into develop 2025-05-07 14:42:14 +00:00
Nathan Cain
32204095e5 Docs update for installing qmk with uv (#24995) 2025-05-07 15:41:37 +01:00
QMK Bot
b76bf29d25 Merge remote-tracking branch 'origin/master' into develop 2025-05-07 14:39:04 +00:00
VeyPatch
396fb4dde7 Fix Aurora sweep default keymap configuration (#25148) 2025-05-07 15:38:29 +01:00
QMK Bot
4836fcf831 Merge remote-tracking branch 'origin/master' into develop 2025-05-07 07:09:37 +00:00
dabstractor
1becbaefbe Fixed print statement after enabling 32-bit layers (#25027) 2025-05-07 00:09:01 -07:00
QMK Bot
e3c613c79c Merge remote-tracking branch 'origin/master' into develop 2025-05-06 06:23:47 +00:00
Duncan Sutherland
04fbcdc68d Layout corrections: Zed60 (#25003) 2025-05-05 23:23:10 -07:00
Drashna Jaelre
55909141ef [Keyboard] Update Tractyl Manuform and add F405 (weact) variant (#24764) 2025-05-05 23:19:38 -07:00
QMK Bot
cd6e065f6e Merge remote-tracking branch 'origin/master' into develop 2025-05-06 06:04:11 +00:00
Silvino R.
bb2b7ce7e4 [Keyboard] Add Binepad KnobX1 (#25222)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2025-05-05 23:03:30 -07:00
QMK Bot
2fbc222bb0 Merge remote-tracking branch 'origin/master' into develop 2025-05-06 05:56:06 +00:00
yiancar
a1469abc8d Keycult 60 (#25213)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: jack <jack@pngu.org>
2025-05-05 22:55:31 -07:00
Joel Challis
ab1332bb6c Remove force disable of NKRO when Bluetooth enabled (#25201) 2025-05-06 06:47:44 +01:00
Nick Brassel
ac991405d0 Deprecate qmk generate-compilation-database. (#25237) 2025-05-06 09:52:41 +10:00
Joel Challis
842c840145 Bind Bluetooth driver to host_driver_t (#25199) 2025-05-05 04:05:04 +01:00
Joel Challis
614b631ee2 Ensure qmk_userspace_paths maintains detected order (#25204) 2025-05-05 03:43:14 +01:00
Joel Challis
5611a40064 Add battery changed callbacks (#25207) 2025-05-05 03:28:33 +01:00
QMK Bot
11c8b2841e Merge remote-tracking branch 'origin/master' into develop 2025-05-05 01:46:48 +00:00
Silvino R.
0c0d038a40 [Keyboard] Add Binepad KN01 (#25224)
* Add Binepad NeoKnob KN01

* post @waffle87 recommendations
2025-05-04 19:46:11 -06:00
Joel Challis
5f31d5cc80 Resolve alias for qmk new-keymap keyboard prompts (#25210) 2025-05-05 11:14:40 +10:00
Joel Challis
dbe30a1b6f Generate versions to keycode headers (#25219) 2025-05-05 10:44:08 +10:00
QMK Bot
a992e32bd5 Merge remote-tracking branch 'origin/master' into develop 2025-05-05 00:23:26 +00:00
Joel Challis
cf5ce64b1b Workaround for resolving keyboard alias for config file values (#25228) 2025-05-05 10:22:51 +10:00
Drashna Jaelre
12caf0be4e Add additional hooks for Community modules (#25050) 2025-05-05 10:21:47 +10:00
Nick Brassel
bb9dd05c6a [Bug] Minimise force-included files (#25194) 2025-05-05 10:07:53 +10:00
QMK Bot
59f607b963 Merge remote-tracking branch 'origin/master' into develop 2025-05-02 01:53:11 +00:00
Christopher Hoage
60ac859852 Fix Spleeb compile when pointing device is enabled (#25016) 2025-05-01 18:52:36 -07:00
Joel Challis
4fb3cf0712 Remove redundant keyboard headers (#25208) 2025-05-01 15:02:17 +01:00
QMK Bot
e98c41c02f Merge remote-tracking branch 'origin/master' into develop 2025-04-30 18:09:14 +00:00
takashicompany
45091b0473 [Keyboard] Add Gravity-45(#25206)
* add gravity-45

* readme.md

* fix readme

* Update keyboards/green_keys/gravity_45/keyboard.json

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

* run qmk format-json -i keyboards/green_keys/gravity_45/keyboard.json

* add url

* Update keyboards/green_keys/gravity_45/keyboard.json

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

* Update keyboard.json

* Update keyboard.json

* Update keyboards/green_keys/gravity_45/keyboard.json

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

---------

Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2025-04-30 12:08:37 -06:00
Joel Challis
3cf328c644 amptrics/0422 - Prevent OOB in update_leds_for_layer (#25209) 2025-04-28 14:37:50 -07:00
Pascal Getreuer
c26449e64f [Core] Enhance Flow Tap to work better for rolls over multiple tap-hold keys. (#25200)
* Flow Tap revision for rolling press.

* Remove debugging cruft.

* Formatting fix.
2025-04-28 09:52:20 +02:00
zvecr
7fa65aa877 Merge remote-tracking branch 'origin/master' into develop 2025-04-28 07:24:00 +01:00
vchowl
4e2191ce20 Amptrics 0420 keyboard addition (#24744)
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2025-04-27 23:08:13 -07:00
josephawilliamsiv
3de04e0386 Add Umbra keyboard (#24569)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2025-04-27 23:02:30 -07:00
Cipulot
2e648d7e48 Addition of OK-1 (#24646)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2025-04-27 22:55:51 -07:00
hen-des
1fd0139b91 Added new keyboard epssp75 (#24756)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2025-04-27 22:28:22 -07:00
mizma
3478ae5795 [Keyboard] mzmkb/slimdash/rev1 (#24804)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2025-04-27 22:26:47 -07:00
VeyPatch
01354fffb4 [Keyboard] Add splitkb.com's Halcyon Elora rev2 (#24790)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2025-04-27 22:25:09 -07:00
Jeremy Cook
92c4f0095d Add jcpm2 (JC Pro Macro 2) (#24816)
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2025-04-27 21:03:50 -07:00
LucasMateijsen
ac8b914a11 Add handwired 4x14 LuMaWing keyboard (#24885) 2025-04-27 20:58:47 -07:00
Matheus Marques
de598ac8f0 [Keymap] Sofle RGB - fixed stuck on numpad layer and layout comments (#24942) 2025-04-27 11:42:11 -07:00
QMK Bot
142952cac8 Merge remote-tracking branch 'origin/master' into develop 2025-04-27 18:19:53 +00:00
takashicompany
a07360e0f1 Add new keyboard MirageiX (#25054)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2025-04-27 11:19:19 -07:00
QMK Bot
1fc7066713 Merge remote-tracking branch 'origin/master' into develop 2025-04-26 00:40:58 +00:00
Michał Kopeć
ca425971d5 keyboards/annepro2/ld: Add per-variant linker scripts (#24999)
C18 has an MCU with 16K SRAM, up from C15's 8K.

Split the linker script into C15 and C18 variants to make use of the
larger RAM capacity of C18.
2025-04-26 01:40:17 +01:00
QMK Bot
dffa59dca5 Merge remote-tracking branch 'origin/master' into develop 2025-04-26 00:32:07 +00:00
Aidan Gauland
3319474c5c Add Lemokey X0 keyboard (#24994) 2025-04-26 01:31:25 +01:00
QMK Bot
802e2f54c6 Merge remote-tracking branch 'origin/master' into develop 2025-04-26 00:29:24 +00:00
Álvaro A. Volpato
12d70ab1a4 First TypeK support (#22876) 2025-04-26 01:28:49 +01:00
Joel Beckmeyer
4ae24004b7 modelh: add prerequisites for via support (#24932) 2025-04-24 13:04:30 -07:00
Joel Challis
8244659b44 Extend lint checks to reject duplication of defaults (#25149) 2025-04-24 05:39:56 +01:00
Joel Challis
0bd02952ea Remove "command":false from keyboards (#25193) 2025-04-24 10:28:13 +10:00
jack
5ea7283159 Fix boardsource/beiwagon RGB Matrix coordinates (#25018) 2025-04-23 04:06:17 +01:00
QMK Bot
acedfc3fcb Merge remote-tracking branch 'origin/master' into develop 2025-04-23 02:26:26 +00:00
dependabot[bot]
e5466df800 Bump vite from 5.4.15 to 5.4.18 in /builddefs/docsgen (#25192)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-23 12:25:47 +10:00
Joel Challis
ce1801aeda Align new-keyboard template to current standards (#25191) 2025-04-23 12:14:11 +10:00
Joel Challis
11cb5cf347 Remove more duplication of defaults (#25189) 2025-04-23 12:11:28 +10:00
QMK Bot
24d896ca06 Merge remote-tracking branch 'origin/master' into develop 2025-04-23 02:10:54 +00:00
Joel Challis
da2e897f55 Update 'qmk generate-api' to only publish pure DD keymaps (#24782) 2025-04-23 12:10:14 +10:00
Joel Challis
07684bcc99 Remove "console":false from keyboards (#25190) 2025-04-23 12:09:56 +10:00
QMK Bot
847bef3177 Merge remote-tracking branch 'origin/master' into develop 2025-04-23 02:03:39 +00:00
Joel Challis
c6a93b5a56 Bump rlespinasse/github-slug-action from 3 to 5 (#25021) 2025-04-23 12:03:02 +10:00
Joel Challis
8cd71917ce Avoid duplication in generated community modules rules.mk (#25135) 2025-04-23 10:27:47 +10:00
eynsai
7a2cd0fa96 High resolution scrolling (without feature report parsing) (#24423)
* hires scrolling without feature report parsing

* fix valid range for exponent

* fix incorrect minimum exponent value documentation
2025-04-23 00:04:31 +02:00
Joel Challis
83818d1d6f Prompt for converter when creating new keymap (#25116) 2025-04-22 17:59:16 +01:00
Joel Challis
960c4969a5 Remove empty url fields (#25181) 2025-04-22 17:59:00 +01:00
Pascal Getreuer
73e2ef486a [Bug][Core] Fix for Flow Tap: fix handling of distinct taps and timer updates. (#25175)
* Flow Tap bug fix.

As reported by @amarz45 and @mwpardue, there is a bug where if two
tap-hold keys are pressed in distinct taps back to back, then Flow Tap
is not applied on the second tap-hold key, but it should be.

In a related bug reported by @NikGovorov, if a tap-hold key is held
followed by a tap of a tap-hold key, then Flow Tap updates its timer on
the release of the held tap-hold key, but it should be ignored.

The problem common to both these bugs is that I incorrectly assumed
`tapping_key` is cleared to noevent once it is released, when actually
`tapping_key` is still maintained for `TAPPING_TERM` ms after release
(for Quick Tap). This commit fixes that. Thanks to @amarz45, @mwpardue,
and @NikGovorov for reporting!

Details:

* Logic for converting the current tap-hold event to a tap is extracted
  to `flow_tap_key_if_within_term()`, which is now invoked also in the
  post-release "interfered with other tap key" case. This fixes the
  distinct taps bug.

* The Flow Tap timer is now updated at the beginning of each call to
  `process_record()`, provided that there is no unsettled tap-hold key
  at that time and that the record is not for a mod or layer switch key.
  By moving this update logic to `process_record()`, it is conceptually
  simpler and more robust.

* Unit tests extended to cover the reported scenarios.

* Fix formatting.

* Revision to fix @NikGovorov's scenario.

The issue is that when another key is pressed while a layer-tap hasn't
been settled yet, the `prev_keycode` remembers the keycode from before
the layer switched. This can then enable Flow Tap for the following key
when it shouldn't, or vice versa.

Thanks to @NikGovorov for reporting!

This commit revises Flow Tap in the following ways:

* The previous key and timer are both updated from `process_record()`.
  This is slightly later in the sequence of processing than before, and
  by this point, a just-settled layer-tap should have taken effect so
  that the keycode from the correct layer is remembered.

* The Flow Tap previous key and timer are updated now also on key
  release events, except for releases of modifiers and held layer
  switches.

* The Flow Tap previous key and timer are now updated together, for
  simplicity. This makes the logic easier to think about.

* A few additional unit tests, including @NikGovorov's scenario as
  "layer_tap_ignored_with_disabled_key_complex."
2025-04-22 09:59:49 +02:00
Joel Challis
b5f8f4d6a2 Align ChibiOS USB_WAIT_FOR_ENUMERATION implementation (#25184) 2025-04-22 14:31:42 +10:00
QMK Bot
0c4124c1c0 Merge remote-tracking branch 'origin/master' into develop 2025-04-22 04:15:10 +00:00
Nick Brassel
9f04023d35 Decrease firmware size for anavi/macropad8. (#25185)
Preparation for bootstrapper.
2025-04-22 14:14:28 +10:00
QMK Bot
43e3831df9 Merge remote-tracking branch 'origin/master' into develop 2025-04-21 23:56:44 +00:00
CJ Pais
ebfa3cdd5c Add handwired/footy (#25151)
Co-authored-by: jack <jack@pngu.org>
2025-04-21 16:56:10 -07:00
Joel Challis
c7cb7ba976 Implement connection keycode logic (#25176) 2025-04-21 22:27:56 +01:00
Joel Challis
ec324af22e Add lint warning for empty url (#25182) 2025-04-21 20:07:05 +01:00
Eric Molitor
2c54ff3e63 Update develop branch to Pico SDK 1.5.1 (#25178) 2025-04-21 15:05:22 +01:00
QMK Bot
402b5ba6d7 Merge remote-tracking branch 'origin/master' into develop 2025-04-21 14:03:22 +00:00
Nick Brassel
53f1f3b6d7 Fix for .clangd. (#25180) 2025-04-22 00:02:47 +10:00
QMK Bot
b779c5f567 Merge remote-tracking branch 'origin/master' into develop 2025-04-20 09:42:05 +00:00
Jan Bláha
a1cb822861 DOCS: qmk-hid missing in bootloaders list? (#25177) 2025-04-20 19:41:30 +10:00
Nick Brassel
a4aabea511 Fixup eeconfig lighting reset. (#25166) 2025-04-19 23:10:33 +01:00
QMK Bot
c8763c9fdb Merge remote-tracking branch 'origin/master' into develop 2025-04-19 22:10:27 +00:00
Joel Challis
edf34315af Fix 'Would you like to clone the submodules?' prompt under msys (#24958) 2025-04-20 08:09:54 +10:00
Joel Challis
ce8b8414d9 Remove bluefruit_le_read_battery_voltage function (#25129) 2025-04-19 22:52:25 +01:00
Less/Rikki
7e68cfc6fa [keyboard] ymdk/id75/rp2040 (#25157)
Co-authored-by: tao heihei <>
2025-04-19 13:11:08 -07:00
Nick Brassel
5c39722ab9 Allow for disabling EEPROM subsystem entirely. (#25173) 2025-04-19 20:20:00 +01:00
Pascal Getreuer
ea85ace4a9 Ignore the Layer Lock key in Repeat Key and Caps Word. (#25171) 2025-04-19 11:57:00 -07:00
Joel Challis
88453acc6a Remove duplication of RGBLight defaults (#25169) 2025-04-19 11:56:45 -07:00
QMK Bot
988d81581d Merge remote-tracking branch 'origin/master' into develop 2025-04-18 09:05:59 +00:00
lsh4711
800bc78d26 Fix missing and extra commas in JSON schema (#25057) 2025-04-18 19:05:25 +10:00
Joel Challis
b43fc33be3 Remove duplication of RGB Matrix defaults (#25146)
* Remove duplication of RGB Matrix defaults

* Remove more duplication of defaults

* fix
2025-04-17 20:59:59 -06:00
QMK Bot
d33aa82c51 Merge remote-tracking branch 'origin/master' into develop 2025-04-17 18:51:15 +00:00
JamesWilson1996
576325e2f4 [Keyboard] Add voidhhkb-hotswap (#25007)
* Added files for voidhhkb-hotswap

* Updated keyboard name to resolve build errors

* Implement suggestions from PR. Use 60_hhkb community layout.

* Update keyboards/void/voidhhkb_hotswap/readme.md

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

* Apply suggestions from code review

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

---------

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: jack <jack@pngu.org>
2025-04-17 12:50:41 -06:00
QMK Bot
642c169bc3 Merge remote-tracking branch 'origin/master' into develop 2025-04-17 16:24:18 +00:00
ClownFish
7641359240 [Docs] Unify lighting step descriptions (#25167)
unify lighting step descriptions and defaults across docs
2025-04-17 10:23:16 -06:00
QMK Bot
944a206d1f Merge remote-tracking branch 'origin/master' into develop 2025-04-17 02:41:54 +00:00
Nick Brassel
e83b709169 [Keyboard] Kobold r1 (#25161)
* Kobold r1

* Apply suggestions from code review

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

* `board_init` => `early_hardware_init_post`.

---------

Co-authored-by: jack <jack@pngu.org>
2025-04-16 20:41:20 -06:00
QMK Bot
00f07ec343 Merge remote-tracking branch 'origin/master' into develop 2025-04-14 17:28:26 +00:00
Daniel Reisch
80612c8ec0 Added Keyboard LumPy27 (#24967)
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2025-04-14 10:27:52 -07:00
jack
32b9d33bbb Remove Sofle rgb_default keymap & tidy readme's (#25010) 2025-04-14 09:58:14 -07:00
QMK Bot
9208fb5adb Merge remote-tracking branch 'origin/master' into develop 2025-04-14 16:54:03 +00:00
Andrew Kannan
af141d1a5c Add Link keyboard (#25058)
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2025-04-14 09:52:51 -07:00
Pascal Getreuer
8d8dcb089e [Core] Flow Tap tap-hold option to disable HRMs during fast typing (#25125)
aka Global Quick Tap, Require Prior Idle
2025-04-14 09:46:24 -07:00
Stefan Kerkmann
a7bf8e64a5 [chore]: move and rename mouse/scroll min/max defines (#25141)
* protocol: move {XY/HV}_REPORT_{MIN,MAX} into report.h

..to allow easier re-use in other code implementations.

* protocol: rename {XY/HV}_REPORT_{MIN/MAX} to MOUSE_REPORT_{XY/HV}_{MIN/MAX}

..to avoid naming collisions.
2025-04-13 18:36:13 +02:00
QMK Bot
d0611b0468 Merge remote-tracking branch 'origin/master' into develop 2025-04-13 16:25:00 +00:00
suikagiken
1388daa0cc [Keyboard] Add suika83opti (#24991) 2025-04-13 10:20:42 -06:00
Sylvain Huguet
d99eb01ee4 Update shuguet/shu89 (#24780)
* Update keyboard.json

Update mod keys location in RGB layout.

* Update keyboard.json

* Update keyboards/shuguet/shu89/keyboard.json

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

---------

Co-authored-by: Ryan <fauxpark@gmail.com>
2025-04-13 10:19:12 -06:00
Olivier Mehani
e17878ad15 kradoindustries_promenade: add LAYOUT_1x2u (#25090) 2025-04-13 10:14:34 -06:00
Christian C. Berclaz
ba72094b69 New standard layout for Savage65 (65_ansi_blocker_tsangan_split_bs) (#24690)
* 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(cannonkeys/savage65): Added layout to keyboard.json
- Added the layout LAYOUT_65_ansi_blocker_tsangan_split_bs to the
  community layouts.
2025-04-13 10:11:18 -06:00
QMK Bot
0d7d75d3d5 Merge remote-tracking branch 'origin/master' into develop 2025-04-11 16:26:48 +00:00
Luis Garcia
daf6968947 fix: Fix startup sound for Preonic (#25132) (#25133)
Add `AUDIO_INIT_DELAY ` to config.h to resolve
2025-04-11 17:26:13 +01:00
Joel Challis
e27dd0f26f Exclude external userspace from lint checking (#24680) 2025-04-11 22:19:02 +10:00
QMK Bot
6624671a60 Merge remote-tracking branch 'origin/master' into develop 2025-04-11 05:26:44 +00:00
Luis Garcia
f549b30760 chore: Allow disabling underglow on Work Louder devices (#25123) (#25120)
* Allow disabling Underglow on Work Louder devices

Allows disabling Underglow on Work Louder devices by using `RGBLIGHT_ENABLE = no` on rules.mk

* Update keyboards/work_louder/rgb_functions.c

Suggested by @zvecr on review.

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

---------

Co-authored-by: Joel Challis <git@zvecr.com>
2025-04-10 23:26:11 -06:00
Nick Brassel
6b8670fe8f Cater for use of __errno_r() in ChibiOS syscalls.c with newer picolibc revisions (#25121) 2025-04-10 01:43:25 +01:00
QMK Bot
dc26e99dd5 Merge remote-tracking branch 'origin/master' into develop 2025-04-09 14:29:06 +00:00
Nick Brassel
a0f40d9410 Include math.h where necessary. (#25122) 2025-04-09 15:28:30 +01:00
QMK Bot
4dc846f21c Merge remote-tracking branch 'origin/master' into develop 2025-04-09 00:15:49 +00:00
Nick Brassel
575abc48a3 More Windows->Unix style path fixes. (#25119) 2025-04-09 10:15:14 +10:00
QMK Bot
4643681888 Merge remote-tracking branch 'origin/master' into develop 2025-04-08 22:13:51 +00:00
Andrew Kannan
0ec96ddd52 Add Vida to QMK (#24225)
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2025-04-09 08:13:16 +10:00
QMK Bot
35019fe136 Merge remote-tracking branch 'origin/master' into develop 2025-04-08 02:36:21 +00:00
QMK Bot
f35f4ee933 Merge remote-tracking branch 'origin/master' into develop 2025-04-08 02:31:52 +00:00
Joel Challis
06610c3da6 Remove CTPC/CONVERT_TO_PROTON_C options (#25111) 2025-04-08 01:55:49 +01:00
QMK Bot
ca635876ce Merge remote-tracking branch 'origin/master' into develop 2025-04-07 17:03:39 +00:00
QMK Bot
bca0aca8c5 Merge remote-tracking branch 'origin/master' into develop 2025-04-07 06:30:11 +00:00
QMK Bot
73ec19f0cb Merge remote-tracking branch 'origin/master' into develop 2025-04-07 04:03:57 +00:00
QMK Bot
0da4c26d9c Merge remote-tracking branch 'origin/master' into develop 2025-04-06 18:03:03 +00:00
Pham Duc Minh
30c0036db1 Refactor Deemen17 Works DE60 (#25088) 2025-04-06 10:53:13 -07:00
QMK Bot
4d3726050e Merge remote-tracking branch 'origin/master' into develop 2025-04-05 21:22:08 +00:00
Ivan Gromov
0f1dcc0592 Add kt60HS-T v2 PCB (#25080)
* Add kt60HS-Tv2

* Update keyboards/keyten/kt60hs_t/readme.md

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

* Update keyboards/keyten/kt60hs_t/v1/readme.md

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

* Update keyboards/keyten/kt60hs_t/v2/keyboard.json

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

* Update keyboards/keyten/kt60hs_t/v2/readme.md

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

* Update keyboards/keyten/kt60hs_t/info.json

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

* Change of structure

* Moving the keyboard

* Update data/mappings/keyboard_aliases.hjson

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

* Update keyboards/keyten/kt60hs_t/v1/keyboard.json

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

* Update keyboards/keyten/kt60hs_t/v2/keyboard.json

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

---------

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2025-04-03 12:51:25 -06:00
Pascal Getreuer
da166d4d8b Add "license" field to Community Module JSON schema. (#25085)
Add "license" field to community module schema.
2025-04-01 16:06:42 +11:00
QMK Bot
3cd2924985 Merge remote-tracking branch 'origin/master' into develop 2025-03-30 00:18:16 +00:00
QMK Bot
7adb4dc6fb Merge remote-tracking branch 'origin/master' into develop 2025-03-29 13:20:13 +00:00
QMK Bot
a8fb9e1462 Merge remote-tracking branch 'origin/master' into develop 2025-03-29 02:48:02 +00:00
QMK Bot
0682cf9242 Merge remote-tracking branch 'origin/master' into develop 2025-03-28 13:38:59 +00:00
QMK Bot
cbe48b67df Merge remote-tracking branch 'origin/master' into develop 2025-03-28 10:04:33 +00:00
QMK Bot
d61798169d Merge remote-tracking branch 'origin/master' into develop 2025-03-28 09:19:41 +00:00
QMK Bot
b9e4d22765 Merge remote-tracking branch 'origin/master' into develop 2025-03-28 08:56:42 +00:00
QMK Bot
bc110b1533 Merge remote-tracking branch 'origin/master' into develop 2025-03-28 08:28:10 +00:00
QMK Bot
183b093698 Merge remote-tracking branch 'origin/master' into develop 2025-03-28 06:26:12 +00:00
yiancar
a02ed6a36d Update keymap for keycult 1800 (#25070)
Update keymap

Co-authored-by: yiancar <yiancar@gmail.com>
2025-03-27 17:25:46 -06:00
QMK Bot
c130b08f8e Merge remote-tracking branch 'origin/master' into develop 2025-03-26 19:24:00 +00:00
Nick Brassel
1a6a9a7c77 [Modules] Provide access to current path in rules.mk. (#25061) 2025-03-26 10:30:45 +00:00
jack
86c22a15ab Fix outdated GPIO control function usage (#25060) 2025-03-26 07:51:56 +00:00
QMK Bot
558b074c93 Merge remote-tracking branch 'origin/master' into develop 2025-03-23 05:17:37 +00:00
jack
2d37e80ac9 Migrate remaining split.soft_serial_pin to split.serial.pin (#25046)
* Migrate keyboards/bastardkb

* Migrate keyboards/handwired

* Migrate keyboards/helix

* Fix duplicate serial key
2025-03-22 09:58:33 -06:00
QMK Bot
38825610a5 Merge remote-tracking branch 'origin/master' into develop 2025-03-21 18:01:05 +00:00
Nick Brassel
2b00b846dc Non-volatile memory data repository pattern (#24356)
* First batch of eeconfig conversions.

* Offset and length for datablocks.

* `via`, `dynamic_keymap`.

* Fix filename.

* Commentary.

* wilba leds

* satisfaction75

* satisfaction75

* more keyboard whack-a-mole

* satisfaction75

* omnikeyish

* more whack-a-mole

* `generic_features.mk` to automatically pick up nvm repositories

* thievery

* deferred variable resolve

* whitespace

* convert api to structs/unions

* convert api to structs/unions

* convert api to structs/unions

* fixups

* code-side docs

* code size fix

* rollback

* nvm_xxxxx_erase

* Updated location of eeconfig magic numbers so non-EEPROM nvm drivers can use them too.

* Fixup build.

* Fixup compilation error with encoders.

* Build fixes.

* Add `via_ci` keymap to onekey to exercise VIA bindings (and thus dynamic keymap et.al.), fixup compilation errors based on preprocessor+sizeof.

* Build failure rectification.
2025-03-21 23:38:34 +11:00
Stefan Kerkmann
c9d62ddc78 [Core] use keycode_string in unit tests (#25042)
* tests: use keycode_string feature

With a proper keycode to string implementation in qmk there is no need
to use the unit tests only implementation anymore.

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

* tests: remove keycode_util feature

This feature is no longer used as we switched the tests to the
keycode string implementation.

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
2025-03-21 08:47:22 +01:00
QMK Bot
d603fb0913 Merge remote-tracking branch 'origin/master' into develop 2025-03-20 22:34:52 +00:00
QMK Bot
b84ab51343 Merge remote-tracking branch 'origin/master' into develop 2025-03-20 22:22:52 +00:00
QMK Bot
ad20f8287a Merge remote-tracking branch 'origin/master' into develop 2025-03-20 22:21:55 +00:00
QMK Bot
0be239b45c Merge remote-tracking branch 'origin/master' into develop 2025-03-20 22:13:25 +00:00
QMK Bot
54dbde68e1 Merge remote-tracking branch 'origin/master' into develop 2025-03-20 22:01:02 +00:00
QMK Bot
add459f0ac Merge remote-tracking branch 'origin/master' into develop 2025-03-20 21:55:29 +00:00
Ramon Imbao
ea238d5a8a Add the plywrks ply8x hotswap variant. (#23558)
* Add hotswap variant

* Update RGB matrix

* Move files around to target develop

* Revert rules.mk for keyboards/jaykeeb/joker/rules.mk

* Update keyboards/plywrks/ply8x/hotswap/keyboard.json

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

* Apply suggestions from code review

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

* Add missing community layouts

* Delete keyboards/plywrks/ply8x/rules.mk

* Update missing keys in RGB matrix

* Add missing key in RGB matrix for hotswap ver

* Remove via keymaps

* Add keyboard alias for plywrks/ply8x to plywrks/ply8x/solder

* Fix typo

* Fix another typo

---------

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2025-03-21 08:53:27 +11:00
Duncan Sutherland
14ef6c9830 Add Community Layout support to daskeyboard4 (#23884)
add ansi CL
2025-03-21 08:44:59 +11:00
QMK Bot
fd1d4d71aa Merge remote-tracking branch 'origin/master' into develop 2025-03-20 21:36:32 +00:00
QMK Bot
61479c4bf2 Merge remote-tracking branch 'origin/master' into develop 2025-03-20 05:07:29 +00:00
Joel Challis
f820a186d4 Align to latest CLI dependencies (#24553)
* Align to latest CLI dependencies

* Update docs
2025-03-20 14:04:10 +11:00
Pascal Getreuer
3484f0a0df [Core] get_keycode_string(): function to format keycodes as strings, for more readable debug logging. (#24787)
* keycode_string(): Format keycodes as strings.

This adds the `keycode_string()` function described in
https://getreuer.info/posts/keyboards/keycode-string/index.html
as a core feature.

* Fix formatting.

* keycode_string review revisions.

* Rename keycode_string() -> get_keycode_string() for consistency with
  existing string utils like get_u8_str().

* Revise custom keycode names with separate _user and _kb tables.

* Correct indent in builddefs/generic_features.mk.

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

* Add KC_NUHS, KC_NUBS, and KC_CAPS.

* Fix linking error with custom names.

* Attempt at simplifying interface.

* Formatting fix.

* Several fixes and revisions.

* Don't use PSTR in KEYCODE_STRING_NAME, since this fails to build on
  AVR. Store custom names in RAM.
* Revise the internal table of common keycode names to use its own
  storage representation, still in PROGMEM, and now more efficiently
  stored flat in 8 bytes per entry.
* Support Swap Hands keycodes and a few other keycodes.

* Revert "Formatting fix."

This reverts commit 2a2771068c.

* Revert "Attempt at simplifying interface."

This reverts commit 8eaf67de76.

* Simplify custom names API by sigprof's suggestion.

* Support more keycodes.

* Add QK_LOCK keycode.
* Add Secure keycodes.
* Add Joystick keycodes.
* Add Programmable Button keycodes.
* Add macro MC_ keycodes.
* For remaining keys in known code ranges, stringify them as
  "QK_<feature>+<number>". For instance, "QK_MIDI+7".

* Bug fix and a few improvements.

* Fix missing right-hand bit when displaying 5-bit mods numerically.
* Support KC_HYPR, KC_MEH, HYPR_T(kc), MEH_T(kc).
* Exclude one-shot keycodes when NO_ACTION_ONESHOT is defined.

---------

Co-authored-by: Ryan <fauxpark@gmail.com>
2025-03-19 20:45:56 +01:00
QMK Bot
40a446a0ec Merge remote-tracking branch 'origin/master' into develop 2025-03-19 16:34:27 +00:00
QMK Bot
d6850bab3f Merge remote-tracking branch 'origin/master' into develop 2025-03-19 01:46:02 +00:00
QMK Bot
80b16f688c Merge remote-tracking branch 'origin/master' into develop 2025-03-18 15:49:02 +00:00
QMK Bot
40fafad6bc Merge remote-tracking branch 'origin/master' into develop 2025-03-17 19:07:56 +00:00
QMK Bot
e6dcdf2d65 Merge remote-tracking branch 'origin/master' into develop 2025-03-16 08:45:02 +00:00
QMK Bot
4f257711e0 Merge remote-tracking branch 'origin/master' into develop 2025-03-13 21:05:09 +00:00
QMK Bot
27b115151f Merge remote-tracking branch 'origin/master' into develop 2025-03-13 21:01:31 +00:00
QMK Bot
fab39d49e6 Merge remote-tracking branch 'origin/master' into develop 2025-03-13 19:21:29 +00:00
QMK Bot
3306d78bbd Merge remote-tracking branch 'origin/master' into develop 2025-03-11 09:43:13 +00:00
Duncan Sutherland
808c4d4e38 add 75_(ansi|iso) Community Layouts to mechlovin/olly/octagon (#22459)
* expand mechlovin/olly/octagon

* Update info.json

* Rename info.json to keyboard.json

* correct matrix position for key

* remove VIA
2025-03-10 00:48:35 -07:00
Joel Challis
67934546ea Only configure STM32_HSECLK within board.h (#25001) 2025-03-09 23:41:24 +00:00
Joel Challis
21c1fd5e5b Require 'x'/'y' properties for LED/RGB Matrix layout (#24997) 2025-03-09 23:40:59 +00:00
Matthijs Muller
30daeaf09f Add Icebreaker keyboard (#24723)
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2025-03-09 00:51:29 -08:00
QMK Bot
21f7c915df Merge remote-tracking branch 'origin/master' into develop 2025-03-09 07:59:37 +00:00
QMK Bot
7cc18f2b11 Merge remote-tracking branch 'origin/master' into develop 2025-03-06 23:17:53 +00:00
Joel Challis
6e1d3d6d07 Add EOL to non-keyboard files (#24990) 2025-03-06 23:17:51 +00:00
QMK Bot
12f9f34fc8 Merge remote-tracking branch 'origin/master' into develop 2025-03-04 23:40:42 +00:00
QMK Bot
4d3a9ce13a Merge remote-tracking branch 'origin/master' into develop 2025-03-03 19:23:41 +00:00
QMK Bot
a0a999976f Merge remote-tracking branch 'origin/master' into develop 2025-03-03 19:22:27 +00:00
QMK Bot
40f08b47ae Merge remote-tracking branch 'origin/master' into develop 2025-03-03 19:19:08 +00:00
QMK Bot
a052adb659 Merge remote-tracking branch 'origin/master' into develop 2025-03-03 05:34:50 +00:00
QMK Bot
3968f5b370 Merge remote-tracking branch 'origin/master' into develop 2025-03-03 03:32:59 +00:00
QMK Bot
c46cefa898 Merge remote-tracking branch 'origin/master' into develop 2025-03-02 21:33:36 +00:00
QMK Bot
d0153368b8 Merge remote-tracking branch 'origin/master' into develop 2025-03-02 21:05:06 +00:00
QMK Bot
a076412b2b Merge remote-tracking branch 'origin/master' into develop 2025-03-02 01:00:30 +00:00
QMK Bot
37c581690c Merge remote-tracking branch 'origin/master' into develop 2025-03-02 00:49:36 +00:00
QMK Bot
ac70b81d3f Merge remote-tracking branch 'origin/master' into develop 2025-03-01 22:24:49 +00:00
QMK Bot
107f9a4cb3 Merge remote-tracking branch 'origin/master' into develop 2025-03-01 21:50:43 +00:00
QMK Bot
2f69eb5f8f Merge remote-tracking branch 'origin/master' into develop 2025-03-01 21:27:15 +00:00
QMK Bot
5151abc298 Merge remote-tracking branch 'origin/master' into develop 2025-03-01 21:02:04 +00:00
QMK Bot
cbfbd173d3 Merge remote-tracking branch 'origin/master' into develop 2025-03-01 21:00:36 +00:00
QMK Bot
8606e78920 Merge remote-tracking branch 'origin/master' into develop 2025-03-01 20:48:45 +00:00
QMK Bot
665a12b50e Merge remote-tracking branch 'origin/master' into develop 2025-03-01 20:47:51 +00:00
QMK Bot
53e61900fe Merge remote-tracking branch 'origin/master' into develop 2025-02-28 19:08:29 +00:00
Pablo Martínez
e62352e606 [Cleanup] Handling of optional *.mk files (#24952)
replace check + `include` with `-include`
2025-02-28 17:39:43 +00:00
Joel Challis
6ee806f376 Implement battery level interface (#24666)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2025-02-28 16:46:14 +11:00
Nick Brassel
312f42945d Branch point for 2025q2 breaking change. 2025-02-28 09:26:13 +11:00
Nick Brassel
40b9dada5c Merge remote-tracking branch 'upstream/master' into develop 2025-02-28 09:24:51 +11:00
3634 changed files with 28127 additions and 12466 deletions

35
.clangd
View File

@@ -1,4 +1,33 @@
CompileFlags:
Add: [-Wno-unknown-attributes, -Wno-maybe-uninitialized, -Wno-unknown-warning-option]
Remove: [-W*, -mmcu=*, -mcpu=*, -mfpu=*, -mfloat-abi=*, -mno-unaligned-access, -mno-thumb-interwork, -mcall-prologues]
Compiler: clang
Add:
[
-Wno-unknown-attributes,
-Wno-maybe-uninitialized,
-Wno-unknown-warning-option,
-Wno-pointer-to-int-cast,
-Wno-int-to-void-pointer-cast,
-DPROGMEM=,
]
Remove:
[
-W*,
-mmcu=*,
-mcpu=*,
-mfpu=*,
-mfloat-abi=*,
-mno-unaligned-access,
-mno-thumb-interwork,
-mcall-prologues,
-D__has_include*,
-mlra,
]
Compiler: clang
Diagnostics:
UnusedIncludes: None
Suppress:
[
asm_invalid_output_constraint,
asm_invalid_input_constraint,
invalid_asm_value_for_constraint,
anyx86_interrupt_attribute,
]

View File

@@ -38,4 +38,4 @@ body:
- type: textarea
attributes:
label: Additional Context
description: Add any other relevant information about the problem here.
description: Add any other relevant information about the problem here.

View File

@@ -39,7 +39,7 @@ jobs:
qmk format-text -a
git diff
- uses: rlespinasse/github-slug-action@v3.x
- uses: rlespinasse/github-slug-action@v5
- name: Become QMK Bot
run: |

View File

@@ -26,7 +26,7 @@ jobs:
util/regen.sh
git diff
- uses: rlespinasse/github-slug-action@v3.x
- uses: rlespinasse/github-slug-action@v5
- name: Become QMK Bot
run: |

27
.vscode/settings.json vendored
View File

@@ -10,6 +10,13 @@
"**/*.uf2": true
},
"files.associations": {
// QMK Filetypes
"keyboard.json": "jsonc",
"info.json": "jsonc",
"keymap.json": "jsonc",
"qmk.json": "jsonc",
"qmk_module.json": "jsonc",
// Standard filetypes
"*.h": "c",
"*.c": "c",
"*.inc": "c",
@@ -28,7 +35,23 @@
"[json]": {
"editor.formatOnSave": false
},
"clangd.arguments": [
"--header-insertion=never"
"clangd.arguments": ["--header-insertion=never"],
"json.schemas": [
{
"fileMatch": ["qmk.json"],
"url": "./data/schemas/user_repo_v1_1.jsonschema"
},
{
"fileMatch": ["qmk_module.json"],
"url": "./data/schemas/community_module.jsonschema"
},
{
"fileMatch": ["keyboard.json", "info.json"],
"url": "./data/schemas/keyboard.jsonschema"
},
{
"fileMatch": ["keymap.json"],
"url": "./data/schemas/keymap.jsonschema"
}
]
}

View File

@@ -59,6 +59,7 @@ ifeq ($(ROOT_DIR),)
endif
include paths.mk
include $(BUILDDEFS_PATH)/support.mk
TEST_OUTPUT_DIR := $(BUILD_DIR)/test
ERROR_FILE := $(BUILD_DIR)/error_occurred
@@ -114,7 +115,7 @@ endef
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
# resolution of 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))
@@ -254,7 +255,7 @@ endef
# if we are going to compile all keyboards, match the rest of the rule
# for each of them
define PARSE_ALL_KEYBOARDS
$$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYBOARD,$(shell $(QMK_BIN) list-keyboards --no-resolve-defaults)))
$$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYBOARD,$(shell $(QMK_BIN) list-keyboards)))
endef
# Prints a list of all known keymaps for the given keyboard
@@ -446,7 +447,7 @@ git-submodules: git-submodule
.PHONY: list-keyboards
list-keyboards:
$(QMK_BIN) list-keyboards --no-resolve-defaults | tr '\n' ' '
$(QMK_BIN) list-keyboards | tr '\n' ' '
.PHONY: list-tests
list-tests:
@@ -454,7 +455,7 @@ list-tests:
.PHONY: generate-keyboards-file
generate-keyboards-file:
$(QMK_BIN) list-keyboards --no-resolve-defaults
$(QMK_BIN) list-keyboards
.PHONY: clean
clean:

View File

@@ -25,8 +25,6 @@ $(TEST_OUTPUT)_SRC := \
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 \
tests/test_common/test_keymap_key.cpp \
tests/test_common/test_logger.cpp \

View File

@@ -11,6 +11,7 @@ endif
.DEFAULT_GOAL := all
include paths.mk
include $(BUILDDEFS_PATH)/support.mk
include $(BUILDDEFS_PATH)/message.mk
# Helper to add defines with a 'QMK_' prefix
@@ -97,21 +98,12 @@ endif
# Pull in rules.mk files from all our subfolders
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/rules.mk)","")
include $(KEYBOARD_PATH_5)/rules.mk
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_4)/rules.mk)","")
include $(KEYBOARD_PATH_4)/rules.mk
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_3)/rules.mk)","")
include $(KEYBOARD_PATH_3)/rules.mk
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_2)/rules.mk)","")
include $(KEYBOARD_PATH_2)/rules.mk
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/rules.mk)","")
include $(KEYBOARD_PATH_1)/rules.mk
endif
-include $(KEYBOARD_PATH_5)/rules.mk
-include $(KEYBOARD_PATH_4)/rules.mk
-include $(KEYBOARD_PATH_3)/rules.mk
-include $(KEYBOARD_PATH_2)/rules.mk
-include $(KEYBOARD_PATH_1)/rules.mk
# Create dependencies on DD keyboard config - structure validated elsewhere
DD_CONFIG_FILES :=
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/info.json)","")
@@ -260,6 +252,9 @@ generated-files: $(INTERMEDIATE_OUTPUT)/src/config.h $(INTERMEDIATE_OUTPUT)/src/
endif
# Community modules
COMMUNITY_RULES_MK = $(shell $(QMK_BIN) generate-community-modules-rules-mk -kb $(KEYBOARD) --quiet --escape --output $(INTERMEDIATE_OUTPUT)/src/community_rules.mk $(KEYMAP_JSON))
include $(COMMUNITY_RULES_MK)
$(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))
@@ -280,10 +275,19 @@ $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.h: $(KEYMAP_JSON) $(D
$(eval CMD=$(QMK_BIN) generate-community-modules-introspection-h -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.h $(KEYMAP_JSON))
@$(BUILD_CMD)
$(INTERMEDIATE_OUTPUT)/src/led_matrix_community_modules.inc: $(KEYMAP_JSON) $(DD_CONFIG_FILES)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-led-matrix-community-modules-inc -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/led_matrix_community_modules.inc $(KEYMAP_JSON))
@$(BUILD_CMD)
$(INTERMEDIATE_OUTPUT)/src/rgb_matrix_community_modules.inc: $(KEYMAP_JSON) $(DD_CONFIG_FILES)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-rgb-matrix-community-modules-inc -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/rgb_matrix_community_modules.inc $(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
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 $(INTERMEDIATE_OUTPUT)/src/led_matrix_community_modules.inc $(INTERMEDIATE_OUTPUT)/src/rgb_matrix_community_modules.inc
include $(BUILDDEFS_PATH)/converters.mk
@@ -487,21 +491,11 @@ ifneq ("$(CONVERTER)","")
endif
# Pull in post_rules.mk files from all our subfolders
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/post_rules.mk)","")
include $(KEYBOARD_PATH_1)/post_rules.mk
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_2)/post_rules.mk)","")
include $(KEYBOARD_PATH_2)/post_rules.mk
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_3)/post_rules.mk)","")
include $(KEYBOARD_PATH_3)/post_rules.mk
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_4)/post_rules.mk)","")
include $(KEYBOARD_PATH_4)/post_rules.mk
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/post_rules.mk)","")
include $(KEYBOARD_PATH_5)/post_rules.mk
endif
-include $(KEYBOARD_PATH_1)/post_rules.mk
-include $(KEYBOARD_PATH_2)/post_rules.mk
-include $(KEYBOARD_PATH_3)/post_rules.mk
-include $(KEYBOARD_PATH_4)/post_rules.mk
-include $(KEYBOARD_PATH_5)/post_rules.mk
define post_rules_mk_community_module_includer
ifneq ("$(wildcard $(1)/post_rules.mk)","")

View File

@@ -7,6 +7,7 @@ endif
OPT = g
include paths.mk
include $(BUILDDEFS_PATH)/support.mk
include $(BUILDDEFS_PATH)/message.mk
TARGET=test/$(TEST_OUTPUT)

View File

@@ -29,6 +29,10 @@ QUANTUM_SRC += \
$(QUANTUM_DIR)/logging/debug.c \
$(QUANTUM_DIR)/logging/sendchar.c \
$(QUANTUM_DIR)/process_keycode/process_default_layer.c \
$(QUANTUM_DIR)/process_keycode/process_oneshot.c \
$(QUANTUM_DIR)/process_keycode/process_quantum.c \
include $(QUANTUM_DIR)/nvm/rules.mk
VPATH += $(QUANTUM_DIR)/logging
# Fall back to lib/printf if there is no platform provided print
@@ -169,80 +173,82 @@ endif
VALID_EEPROM_DRIVER_TYPES := vendor custom transient i2c spi wear_leveling legacy_stm32_flash
EEPROM_DRIVER ?= vendor
ifeq ($(filter $(EEPROM_DRIVER),$(VALID_EEPROM_DRIVER_TYPES)),)
ifneq ($(strip $(EEPROM_DRIVER)),none)
ifeq ($(filter $(EEPROM_DRIVER),$(VALID_EEPROM_DRIVER_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid EEPROM_DRIVER,EEPROM_DRIVER="$(EEPROM_DRIVER)" is not a valid EEPROM driver)
else
OPT_DEFS += -DEEPROM_ENABLE
COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/eeprom
COMMON_VPATH += $(DRIVER_PATH)/eeprom
COMMON_VPATH += $(PLATFORM_COMMON_DIR)
ifeq ($(strip $(EEPROM_DRIVER)), custom)
# Custom EEPROM implementation -- only needs to implement init/erase/read_block/write_block
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_CUSTOM
SRC += eeprom_driver.c
else ifeq ($(strip $(EEPROM_DRIVER)), wear_leveling)
# Wear-leveling EEPROM implementation
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING
SRC += eeprom_driver.c eeprom_wear_leveling.c
else ifeq ($(strip $(EEPROM_DRIVER)), i2c)
# External I2C EEPROM implementation
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_I2C
I2C_DRIVER_REQUIRED = yes
SRC += eeprom_driver.c eeprom_i2c.c
else ifeq ($(strip $(EEPROM_DRIVER)), spi)
# External SPI EEPROM implementation
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_SPI
SPI_DRIVER_REQUIRED = yes
SRC += eeprom_driver.c eeprom_spi.c
else ifeq ($(strip $(EEPROM_DRIVER)), legacy_stm32_flash)
# STM32 Emulated EEPROM, backed by MCU flash (soon to be deprecated)
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_LEGACY_EMULATED_FLASH
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 ifeq ($(strip $(EEPROM_DRIVER)), transient)
# Transient EEPROM implementation -- no data storage but provides runtime area for it
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT
SRC += eeprom_driver.c eeprom_transient.c
else ifeq ($(strip $(EEPROM_DRIVER)), vendor)
# Vendor-implemented EEPROM
OPT_DEFS += -DEEPROM_VENDOR
ifeq ($(PLATFORM),AVR)
# Automatically provided by avr-libc, nothing required
else ifeq ($(PLATFORM),CHIBIOS)
ifneq ($(filter %_STM32F072xB %_STM32F042x6, $(MCU_SERIES)_$(MCU_LDSCRIPT)),)
# STM32 Emulated EEPROM, backed by MCU flash (soon to be deprecated)
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_LEGACY_EMULATED_FLASH
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 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
WEAR_LEVELING_DRIVER ?= embedded_flash
else ifneq ($(filter $(MCU_SERIES),STM32L0xx STM32L1xx),)
# True EEPROM on STM32L0xx, L1xx
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_STM32_L0_L1
SRC += eeprom_driver.c eeprom_stm32_L0_L1.c
else ifneq ($(filter $(MCU_SERIES),RP2040),)
# Wear-leveling EEPROM implementation, backed by RP2040 flash
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING
SRC += eeprom_driver.c eeprom_wear_leveling.c
WEAR_LEVELING_DRIVER ?= rp2040_flash
else ifneq ($(filter $(MCU_SERIES),KL2x K20x),)
# Teensy EEPROM implementations
OPT_DEFS += -DEEPROM_KINETIS_FLEXRAM
SRC += eeprom_kinetis_flexram.c
else
# Fall back to transient, i.e. non-persistent
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT
SRC += eeprom_driver.c eeprom_transient.c
else
OPT_DEFS += -DEEPROM_ENABLE
COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/eeprom
COMMON_VPATH += $(DRIVER_PATH)/eeprom
COMMON_VPATH += $(PLATFORM_COMMON_DIR)
ifeq ($(strip $(EEPROM_DRIVER)), custom)
# Custom EEPROM implementation -- only needs to implement init/erase/read_block/write_block
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_CUSTOM
SRC += eeprom_driver.c
else ifeq ($(strip $(EEPROM_DRIVER)), wear_leveling)
# Wear-leveling EEPROM implementation
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING
SRC += eeprom_driver.c eeprom_wear_leveling.c
else ifeq ($(strip $(EEPROM_DRIVER)), i2c)
# External I2C EEPROM implementation
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_I2C
I2C_DRIVER_REQUIRED = yes
SRC += eeprom_driver.c eeprom_i2c.c
else ifeq ($(strip $(EEPROM_DRIVER)), spi)
# External SPI EEPROM implementation
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_SPI
SPI_DRIVER_REQUIRED = yes
SRC += eeprom_driver.c eeprom_spi.c
else ifeq ($(strip $(EEPROM_DRIVER)), legacy_stm32_flash)
# STM32 Emulated EEPROM, backed by MCU flash (soon to be deprecated)
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_LEGACY_EMULATED_FLASH
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 ifeq ($(strip $(EEPROM_DRIVER)), transient)
# Transient EEPROM implementation -- no data storage but provides runtime area for it
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT
SRC += eeprom_driver.c eeprom_transient.c
else ifeq ($(strip $(EEPROM_DRIVER)), vendor)
# Vendor-implemented EEPROM
OPT_DEFS += -DEEPROM_VENDOR
ifeq ($(PLATFORM),AVR)
# Automatically provided by avr-libc, nothing required
else ifeq ($(PLATFORM),CHIBIOS)
ifneq ($(filter %_STM32F072xB %_STM32F042x6, $(MCU_SERIES)_$(MCU_LDSCRIPT)),)
# STM32 Emulated EEPROM, backed by MCU flash (soon to be deprecated)
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_LEGACY_EMULATED_FLASH
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 STM32G0xx 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
WEAR_LEVELING_DRIVER ?= embedded_flash
else ifneq ($(filter $(MCU_SERIES),STM32L0xx STM32L1xx),)
# True EEPROM on STM32L0xx, L1xx
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_STM32_L0_L1
SRC += eeprom_driver.c eeprom_stm32_L0_L1.c
else ifneq ($(filter $(MCU_SERIES),RP2040),)
# Wear-leveling EEPROM implementation, backed by RP2040 flash
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING
SRC += eeprom_driver.c eeprom_wear_leveling.c
WEAR_LEVELING_DRIVER ?= rp2040_flash
else ifneq ($(filter $(MCU_SERIES),KL2x K20x),)
# Teensy EEPROM implementations
OPT_DEFS += -DEEPROM_KINETIS_FLEXRAM
SRC += eeprom_kinetis_flexram.c
else
# Fall back to transient, i.e. non-persistent
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT
SRC += eeprom_driver.c eeprom_transient.c
endif
else ifeq ($(PLATFORM),TEST)
# Test harness "EEPROM"
OPT_DEFS += -DEEPROM_TEST_HARNESS
SRC += eeprom.c
endif
else ifeq ($(PLATFORM),TEST)
# Test harness "EEPROM"
OPT_DEFS += -DEEPROM_TEST_HARNESS
SRC += eeprom.c
endif
endif
endif
@@ -263,18 +269,14 @@ ifneq ($(strip $(WEAR_LEVELING_DRIVER)),none)
ifeq ($(strip $(WEAR_LEVELING_DRIVER)), embedded_flash)
OPT_DEFS += -DHAL_USE_EFL
SRC += wear_leveling_efl.c
POST_CONFIG_H += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/wear_leveling/wear_leveling_efl_config.h
else ifeq ($(strip $(WEAR_LEVELING_DRIVER)), spi_flash)
FLASH_DRIVER := spi
SRC += wear_leveling_flash_spi.c
POST_CONFIG_H += $(DRIVER_PATH)/wear_leveling/wear_leveling_flash_spi_config.h
else ifeq ($(strip $(WEAR_LEVELING_DRIVER)), rp2040_flash)
SRC += wear_leveling_rp2040_flash.c
POST_CONFIG_H += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_PATH)/wear_leveling/wear_leveling_rp2040_flash_config.h
else ifeq ($(strip $(WEAR_LEVELING_DRIVER)), legacy)
COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash
SRC += legacy_flash_ops.c wear_leveling_legacy.c
POST_CONFIG_H += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/wear_leveling/wear_leveling_legacy_config.h
endif
endif
endif
@@ -635,6 +637,11 @@ ifeq ($(strip $(VIA_ENABLE)), yes)
TRI_LAYER_ENABLE := yes
endif
ifeq ($(strip $(RAW_ENABLE)), yes)
OPT_DEFS += -DRAW_ENABLE
SRC += raw_hid.c
endif
ifeq ($(strip $(DYNAMIC_KEYMAP_ENABLE)), yes)
SEND_STRING_ENABLE := yes
endif
@@ -717,6 +724,7 @@ ifeq ($(strip $(LIB8TION_ENABLE)), yes)
# ATmegaxxU2 does not have hardware MUL instruction - lib8tion must be told to use software multiplication routines
OPT_DEFS += -DLIB8_ATTINY
endif
OPT_DEFS += -DFASTLED_SCALE8_FIXED=1 -DFASTLED_BLEND_FIXED=1
SRC += $(LIB_PATH)/lib8tion/lib8tion.c
endif
@@ -888,19 +896,19 @@ ifeq ($(strip $(BLUETOOTH_ENABLE)), yes)
OPT_DEFS += -DBLUETOOTH_ENABLE
OPT_DEFS += -DBLUETOOTH_$(strip $(shell echo $(BLUETOOTH_DRIVER) | tr '[:lower:]' '[:upper:]'))
NO_USB_STARTUP_CHECK := yes
CONNECTION_ENABLE := yes
COMMON_VPATH += $(DRIVER_PATH)/bluetooth
SRC += outputselect.c process_connection.c
SRC += $(DRIVER_PATH)/bluetooth/bluetooth.c
ifeq ($(strip $(BLUETOOTH_DRIVER)), bluefruit_le)
SPI_DRIVER_REQUIRED = yes
ANALOG_DRIVER_REQUIRED = yes
SRC += $(DRIVER_PATH)/bluetooth/bluetooth.c
SRC += $(DRIVER_PATH)/bluetooth/bluetooth_drivers.c
SRC += $(DRIVER_PATH)/bluetooth/bluefruit_le.cpp
endif
ifeq ($(strip $(BLUETOOTH_DRIVER)), rn42)
UART_DRIVER_REQUIRED = yes
SRC += $(DRIVER_PATH)/bluetooth/bluetooth.c
SRC += $(DRIVER_PATH)/bluetooth/bluetooth_drivers.c
SRC += $(DRIVER_PATH)/bluetooth/rn42.c
endif
endif
@@ -934,6 +942,28 @@ ifeq ($(strip $(DIP_SWITCH_ENABLE)), yes)
endif
endif
VALID_BATTERY_DRIVER_TYPES := adc custom vendor
BATTERY_DRIVER ?= adc
ifeq ($(strip $(BATTERY_DRIVER_REQUIRED)), yes)
ifeq ($(filter $(BATTERY_DRIVER),$(VALID_BATTERY_DRIVER_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid BATTERY_DRIVER,BATTERY_DRIVER="$(BATTERY_DRIVER)" is not a valid battery driver)
endif
OPT_DEFS += -DBATTERY_DRIVER
OPT_DEFS += -DBATTERY_$(strip $(shell echo $(BATTERY_DRIVER) | tr '[:lower:]' '[:upper:]'))
COMMON_VPATH += $(DRIVER_PATH)/battery
SRC += battery.c
SRC += battery_$(strip $(BATTERY_DRIVER)).c
# add extra deps
ifeq ($(strip $(BATTERY_DRIVER)), adc)
ANALOG_DRIVER_REQUIRED = yes
endif
endif
VALID_WS2812_DRIVER_TYPES := bitbang custom i2c pwm spi vendor
WS2812_DRIVER ?= bitbang

View File

@@ -168,7 +168,7 @@ MOVE_DEP = mv -f $(patsubst %.o,%.td,$@) $(patsubst %.o,%.d,$@)
# For a ChibiOS build, ensure that the board files have the hook overrides injected
define BOARDSRC_INJECT_HOOKS
$(INTERMEDIATE_OUTPUT)/$(patsubst %.c,%.o,$(patsubst ./%,%,$1)): INIT_HOOK_CFLAGS += -include $(TOP_DIR)/tmk_core/protocol/chibios/init_hooks.h
$(INTERMEDIATE_OUTPUT)/$(patsubst %.c,%.o,$(patsubst ./%,%,$1)): FILE_SPECIFIC_CFLAGS += -include $(TOP_DIR)/tmk_core/protocol/chibios/init_hooks.h
endef
$(foreach LOBJ, $(BOARDSRC), $(eval $(call BOARDSRC_INJECT_HOOKS,$(LOBJ))))
@@ -289,10 +289,10 @@ $1/%.o : %.c $1/%.d $1/cflags.txt $1/compiler.txt | $(BEGIN)
ifneq ($$(VERBOSE_C_INCLUDE),)
$$(if $$(filter $$(notdir $$(VERBOSE_C_INCLUDE)),$$(notdir $$<)),$$(eval CC_EXEC += -H))
endif
$$(eval CMD := $$(CC_EXEC) -c $$($1_CFLAGS) $$(INIT_HOOK_CFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP))
$$(eval CMD := $$(CC_EXEC) -c $$($1_CFLAGS) $$(FILE_SPECIFIC_CFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP))
@$$(BUILD_CMD)
ifneq ($$(DUMP_C_MACROS),)
$$(eval CMD := $$(CC) -E -dM $$($1_CFLAGS) $$(INIT_HOOK_CFLAGS) $$(GENDEPFLAGS) $$<)
$$(eval CMD := $$(CC) -E -dM $$($1_CFLAGS) $$(FILE_SPECIFIC_CFLAGS) $$(GENDEPFLAGS) $$<)
@$$(if $$(filter $$(notdir $$(DUMP_C_MACROS)),$$(notdir $$<)),$$(BUILD_CMD))
endif
@@ -300,13 +300,13 @@ $1/%.o : %.c $1/%.d $1/cflags.txt $1/compiler.txt | $(BEGIN)
$1/%.o : %.cpp $1/%.d $1/cxxflags.txt $1/compiler.txt | $(BEGIN)
@mkdir -p $$(@D)
@$$(SILENT) || printf "$$(MSG_COMPILING_CXX) $$<" | $$(AWK_CMD)
$$(eval CMD=$$(CC) -c $$($1_CXXFLAGS) $$(INIT_HOOK_CFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP))
$$(eval CMD=$$(CC) -c $$($1_CXXFLAGS) $$(FILE_SPECIFIC_CFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP))
@$$(BUILD_CMD)
$1/%.o : %.cc $1/%.d $1/cxxflags.txt $1/compiler.txt | $(BEGIN)
@mkdir -p $$(@D)
@$$(SILENT) || printf "$$(MSG_COMPILING_CXX) $$<" | $$(AWK_CMD)
$$(eval CMD=$$(CC) -c $$($1_CXXFLAGS) $$(INIT_HOOK_CFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP))
$$(eval CMD=$$(CC) -c $$($1_CXXFLAGS) $$(FILE_SPECIFIC_CFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP))
@$$(BUILD_CMD)
# Assemble: create object files from assembler source files.

View File

@@ -1,10 +1,3 @@
# Note for new boards -- CTPC and CONVERT_TO_PROTON_C are deprecated terms
# and should not be replicated for new boards. These will be removed from
# documentation as well as existing keymaps in due course.
ifneq ($(findstring yes, $(CTPC)$(CONVERT_TO_PROTON_C)),)
$(call CATASTROPHIC_ERROR,The `CONVERT_TO_PROTON_C` and `CTPC` options are now deprecated. `CONVERT_TO=proton_c` should be used instead.)
endif
ifneq (,$(filter $(MCU),atmega32u4))
# TODO: opt in rather than assume everything uses a pro micro
PIN_COMPATIBLE ?= promicro

View File

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

View File

@@ -766,10 +766,10 @@ tabbable@^6.2.0:
resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97"
integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==
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==
vite@^5.2.9, vite@^5.4.19:
version "5.4.19"
resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.19.tgz#20efd060410044b3ed555049418a5e7d1998f959"
integrity sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==
dependencies:
esbuild "^0.21.3"
postcss "^8.4.43"

View File

@@ -25,6 +25,7 @@ GENERIC_FEATURES = \
CAPS_WORD \
COMBO \
COMMAND \
CONNECTION \
CRC \
DEFERRED_EXEC \
DIGITIZER \
@@ -34,6 +35,7 @@ GENERIC_FEATURES = \
DYNAMIC_TAPPING_TERM \
GRAVE_ESC \
HAPTIC \
KEYCODE_STRING \
KEY_LOCK \
KEY_OVERRIDE \
LAYER_LOCK \
@@ -60,6 +62,7 @@ define HANDLE_GENERIC_FEATURE
SRC += $$(wildcard $$(QUANTUM_DIR)/process_keycode/process_$2.c)
SRC += $$(wildcard $$(QUANTUM_DIR)/$2/$2.c)
SRC += $$(wildcard $$(QUANTUM_DIR)/$2.c)
SRC += $$(wildcard $$(QUANTUM_DIR)/nvm/$$(NVM_DRIVER_LOWER)/nvm_$2.c)
VPATH += $$(wildcard $$(QUANTUM_DIR)/$2/)
OPT_DEFS += -D$1_ENABLE
endef

11
builddefs/support.mk Normal file
View File

@@ -0,0 +1,11 @@
# Helper to determine if a compiler option is supported
# Args:
# $(1) = option to test, if successful will be output
# $(2) = option to use if $(1) is not supported
# $(3) = additional arguments to pass to the compiler during the test, but aren't contained in the output
cc-option = $(shell \
if { echo 'int main(){return 0;}' | $(CC) $(1) $(3) -o /dev/null -x c /dev/null >/dev/null 2>&1; }; \
then echo "$(1)"; else echo "$(2)"; fi)
# Helper to pass comma character to make functions (use with `$(,)` to pass in `$(call ...)` arguments)
, := ,

View File

@@ -372,4 +372,4 @@
"label": "~",
}
}
}
}

View File

@@ -629,4 +629,4 @@
"label": "(narrow non-breaking space)",
}
}
}
}

View File

@@ -376,4 +376,4 @@
"label": "₢",
}
}
}
}

View File

@@ -638,4 +638,4 @@
"label": "÷",
}
}
}
}

View File

@@ -299,4 +299,4 @@
"label": "?",
}
}
}
}

View File

@@ -400,4 +400,4 @@
"label": "§",
}
}
}
}

View File

@@ -432,4 +432,4 @@
"label": "*",
}
}
}
}

View File

@@ -356,4 +356,4 @@
"label": "µ",
}
}
}
}

View File

@@ -299,4 +299,4 @@
"label": ":",
}
}
}
}

View File

@@ -314,4 +314,4 @@
"label": "@",
}
}
}
}

View File

@@ -299,4 +299,4 @@
"label": "\"",
}
}
}
}

View File

@@ -364,4 +364,4 @@
"label": "ž",
}
}
}
}

View File

@@ -593,4 +593,4 @@
"label": "…",
}
}
}
}

View File

@@ -356,4 +356,4 @@
"label": "µ",
}
}
}
}

View File

@@ -364,4 +364,4 @@
"label": "¤",
}
}
}
}

View File

@@ -620,4 +620,4 @@
"label": "≠",
}
}
}
}

View File

@@ -673,4 +673,4 @@
"label": "±",
}
}
}
}

View File

@@ -356,4 +356,4 @@
"label": "µ",
}
}
}
}

View File

@@ -653,4 +653,4 @@
"label": "—",
}
}
}
}

View File

@@ -388,4 +388,4 @@
"label": "©",
}
}
}
}

View File

@@ -344,4 +344,4 @@
"label": "÷",
}
}
}
}

View File

@@ -432,4 +432,4 @@
"label": "*",
}
}
}
}

View File

@@ -352,4 +352,4 @@
"label": "µ",
}
}
}
}

View File

@@ -352,4 +352,4 @@
"label": "´ (dead)",
}
}
}
}

View File

@@ -361,4 +361,4 @@
"label": "}",
}
}
}
}

View File

@@ -681,4 +681,4 @@
"label": "—",
}
}
}
}

View File

@@ -685,4 +685,4 @@
"label": "—",
}
}
}
}

View File

@@ -327,4 +327,4 @@
"label": "_",
}
}
}
}

View File

@@ -307,4 +307,4 @@
"label": "?",
}
}
}
}

View File

@@ -437,4 +437,4 @@
"label": "¨ (dead)",
}
}
}
}

View File

@@ -372,4 +372,4 @@
"label": "\\",
}
}
}
}

View File

@@ -365,4 +365,4 @@
"label": "+",
}
}
}
}

View File

@@ -214,4 +214,4 @@
"label": "(layer 4)",
}
}
}
}

View File

@@ -113,4 +113,4 @@
"key": "NO_MU"
}
}
}
}

View File

@@ -299,4 +299,4 @@
"label": "?",
}
}
}
}

View File

@@ -352,4 +352,4 @@
"label": "µ",
}
}
}
}

View File

@@ -83,4 +83,4 @@
"key": "PV_U"
}
}
}
}

View File

@@ -70,4 +70,4 @@
"key": "PD_U"
}
}
}
}

View File

@@ -352,4 +352,4 @@
"label": "Ń",
}
}
}
}

View File

@@ -352,4 +352,4 @@
"label": "€",
}
}
}
}

View File

@@ -617,4 +617,4 @@
"label": "",
}
}
}
}

View File

@@ -441,4 +441,4 @@
"label": "»",
}
}
}
}

View File

@@ -288,4 +288,4 @@
"label": "₽",
}
}
}
}

View File

@@ -304,4 +304,4 @@
"label": "€",
}
}
}
}

View File

@@ -404,4 +404,4 @@
"label": "§",
}
}
}
}

View File

@@ -440,4 +440,4 @@
"label": "}",
}
}
}
}

View File

@@ -400,4 +400,4 @@
"label": "§",
}
}
}
}

View File

@@ -356,4 +356,4 @@
"label": "}",
}
}
}
}

View File

@@ -356,4 +356,4 @@
"label": "}",
}
}
}
}

View File

@@ -340,4 +340,4 @@
"label": "`",
}
}
}
}

View File

@@ -356,4 +356,4 @@
"label": "µ",
}
}
}
}

View File

@@ -639,4 +639,4 @@
"label": "—",
}
}
}
}

View File

@@ -637,4 +637,4 @@
"label": "—",
}
}
}
}

View File

@@ -639,4 +639,4 @@
"label": "—",
}
}
}
}

View File

@@ -637,4 +637,4 @@
"label": "—",
}
}
}
}

View File

@@ -376,4 +376,4 @@
"label": "\\",
}
}
}
}

View File

@@ -376,4 +376,4 @@
"label": "\\",
}
}
}
}

View File

@@ -477,4 +477,4 @@
"label": "º",
}
}
}
}

View File

@@ -372,4 +372,4 @@
"label": "` (dead)",
}
}
}
}

View File

@@ -350,4 +350,4 @@
"label": "Á"
}
}
}
}

View File

@@ -292,4 +292,4 @@
"label": "ґ",
}
}
}
}

View File

@@ -585,4 +585,4 @@
"label": "̉ (dead)",
}
}
}
}

View File

@@ -505,4 +505,4 @@
"label": "¢",
}
}
}
}

View File

@@ -573,4 +573,4 @@
"label": "̉ (dead)",
}
}
}
}

View File

@@ -299,4 +299,4 @@
"label": "?",
}
}
}
}

View File

@@ -299,4 +299,4 @@
"label": "?",
}
}
}
}

View File

@@ -93,4 +93,4 @@
"key": "SAFE_RANGE"
}
}
}
}

View File

@@ -225,4 +225,4 @@
]
}
}
}
}

View File

@@ -246,4 +246,4 @@
]
}
}
}
}

View File

@@ -225,4 +225,4 @@
]
}
}
}
}

View File

@@ -37,4 +37,4 @@
"key": "SQ_SCLR"
}
}
}
}

View File

@@ -17,4 +17,4 @@
]
}
}
}
}

View File

@@ -248,4 +248,4 @@
]
}
}
}
}

View File

@@ -66,4 +66,4 @@
]
}
}
}
}

View File

@@ -0,0 +1,55 @@
{
pointing_device_init: {
ret_type: void
args: void
guard: defined(POINTING_DEVICE_ENABLE)
}
pointing_device_task: {
ret_type: report_mouse_t
args: report_mouse_t mouse_report
call_params: mouse_report
guard: defined(POINTING_DEVICE_ENABLE)
header: report.h
}
rgb_matrix_indicators: {
ret_type: bool
args: void
guard: defined(RGB_MATRIX_ENABLE)
header: rgb_matrix.h
}
rgb_matrix_indicators_advanced: {
ret_type: bool
args: uint8_t led_min, uint8_t led_max
call_params: led_min, led_max
guard: defined(RGB_MATRIX_ENABLE)
header: rgb_matrix.h
}
led_matrix_indicators: {
ret_type: bool
args: void
guard: defined(LED_MATRIX_ENABLE)
header: led_matrix.h
}
led_matrix_indicators_advanced: {
ret_type: bool
args: uint8_t led_min, uint8_t led_max
call_params: led_min, led_max
guard: defined(LED_MATRIX_ENABLE)
header: led_matrix.h
}
default_layer_state_set: {
ret_type: layer_state_t
args: layer_state_t state
call_params: state
guard: !defined(NO_ACTION_LAYER)
header: action_layer.h
}
layer_state_set: {
ret_type: layer_state_t
args: layer_state_t state
call_params: state
guard: !defined(NO_ACTION_LAYER)
header: action_layer.h
}
}

View File

@@ -0,0 +1,3 @@
{
// This version exists to signify addition of LED/RGB effect support.
}

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},
// host
"NKRO_DEFAULT_ON": {"info_key": "host.default.nkro", "value_type": "bool"},
// Layer locking
"LAYER_LOCK_IDLE_TIMEOUT": {"info_key": "layer_lock.timeout", "value_type": "int"},
@@ -201,6 +204,7 @@
// Tapping
"CHORDAL_HOLD": {"info_key": "tapping.chordal_hold", "value_type": "flag"},
"FLOW_TAP_TERM": {"info_key": "tapping.flow_tap_term", "value_type": "int"},
"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"},
@@ -214,7 +218,6 @@
"TAPPING_TOGGLE": {"info_key": "tapping.toggle", "value_type": "int"},
// USB
"FORCE_NKRO": {"info_key": "usb.force_nkro", "value_type": "flag"},
"USB_MAX_POWER_CONSUMPTION": {"info_key": "usb.max_power", "value_type": "int"},
"USB_POLLING_INTERVAL_MS": {"info_key": "usb.polling_interval", "value_type": "int"},
"USB_SUSPEND_WAKEUP_DELAY": {"info_key": "usb.suspend_wakeup_delay", "value_type": "int"},
@@ -252,6 +255,7 @@
"PRODUCT": {"info_key": "keyboard_name", "warn_duplicate": false, "value_type": "str", "deprecated": true, "replace_with": "`keyboard_name` in info.json"},
"PRODUCT_ID": {"info_key": "usb.pid", "value_type": "hex", "deprecated": true, "replace_with": "`usb.pid` in info.json"},
"VENDOR_ID": {"info_key": "usb.vid", "value_type": "hex", "deprecated": true, "replace_with": "`usb.vid` in info.json"},
"FORCE_NKRO": {"info_key": "usb.force_nkro", "value_type": "flag", "deprecated": true, "replace_with": "`host.default.nkro` in info.json"},
// Items we want flagged in lint
"VIAL_KEYBOARD_UID": {"info_key": "_invalid.vial_uid", "invalid": true},

View File

@@ -0,0 +1,74 @@
{
"bootmagic": {
"matrix": [0, 0]
},
"backlight": {
"default": {
"on": true
},
"breathing_period": 6,
"levels": 3,
"on_state": 1
},
"debounce": 5,
"features": {
"command": false,
"console": false
},
"indicators": {
"on_state": 1
},
"led_matrix": {
"default": {
"animation": "solid",
"on": true,
"val": 255,
"speed": 128
},
"led_flush_limit": 16,
"max_brightness": 255,
"sleep": false,
"speed_steps": 16,
"val_steps": 16
},
"rgblight": {
"default": {
"animation": "static_light",
"on": true,
"hue": 0,
"sat": 255,
"val": 255,
"speed": 0
},
"brightness_steps": 17,
"hue_steps": 8,
"max_brightness": 255,
"saturation_steps": 17,
"sleep": false
},
"rgb_matrix": {
"default": {
"animation": "cycle_left_right",
"on": true,
"hue": 0,
"sat": 255,
"val": 255,
"speed": 128
},
"hue_steps": 8,
"led_flush_limit": 16,
"max_brightness": 255,
"sat_steps": 16,
"sleep": false,
"speed_steps": 16,
"val_steps": 16
},
"split": {
"serial": {
"driver": "bitbang"
}
},
"ws2812": {
"driver": "bitbang"
}
}

View File

@@ -53,8 +53,8 @@
"WS2812_DRIVER": {"info_key": "ws2812.driver"},
// 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},
"CTPC": {"info_key": "_invalid.ctpc", "invalid": true, "replace_with": "CONVERT_TO=proton_c"},
"CONVERT_TO_PROTON_C": {"info_key": "_invalid.ctpc", "invalid": true, "replace_with": "CONVERT_TO=proton_c"},
"DEFAULT_FOLDER": {"info_key": "_invalid.default_folder", "invalid": true},
"VIAL_ENABLE": {"info_key": "_invalid.vial", "invalid": true}
}

View File

@@ -146,6 +146,9 @@
"daisy": {
"target": "ktec/daisy"
},
"deemen17/de60": {
"target": "deemen17/de60/r1"
},
"dp3000": {
"target": "dp3000/rev1"
},
@@ -347,6 +350,9 @@
"keycapsss/plaid_pad": {
"target": "keycapsss/plaid_pad/rev1"
},
"keyten/kt60hs_t": {
"target": "keyten/kt60hs_t/v1"
},
"kira75": {
"target": "kira/kira75"
},
@@ -581,6 +587,9 @@
"ploopyco/trackball": {
"target": "ploopyco/trackball/rev1_005"
},
"plywrks/ply8x": {
"target": "plywrks/ply8x/solder"
},
"polilla": {
"target": "polilla/rev1"
},
@@ -1033,7 +1042,7 @@
"target": "kprepublic/bm68hsrgb/rev1"
},
"late9/rev1": {
"target": "rookiebwoy/late9/rev1"
"target": "ivndbt/late9/rev1"
},
"latin17rgb": {
"target": "latincompass/latin17rgb"
@@ -1198,7 +1207,7 @@
"target": "spaceholdings/nebula68b"
},
"neopad/rev1": {
"target": "rookiebwoy/neopad/rev1"
"target": "ivndbt/neopad/rev1"
},
"niu_mini": {
"target": "kbdfans/niu_mini"
@@ -2095,10 +2104,16 @@
"target": "rmi_kb/wete/v2"
},
"rookiebwoy/late9": {
"target": "rookiebwoy/late9/rev1"
"target": "ivndbt/late9/rev1"
},
"rookiebwoy/neopad": {
"target": "rookiebwoy/neopad/rev1"
"target": "ivndbt/neopad/rev1"
},
"ivndbt/late9": {
"target": "ivndbt/late9/rev1"
},
"ivndbt/neopad": {
"target": "ivndbt/neopad/rev1"
},
"rura66": {
"target": "rura66/rev1"
@@ -2243,5 +2258,54 @@
},
"zsa/planck_ez": {
"target": "zsa/planck_ez/base"
},
// DEFAULT_FOLDER removed during 2025 Q3 cycle
"cannonkeys/satisfaction75": {
"target": "cannonkeys/satisfaction75/rev1"
},
"converter/adb_usb": {
"target": "converter/adb_usb/rev1"
},
"converter/sun_usb": {
"target": "converter/sun_usb/type5"
},
"converter/usb_usb": {
"target": "converter/usb_usb/hasu"
},
"durgod/dgk6x": {
"target": "durgod/dgk6x/hades_ansi"
},
"ergodox_ez": {
"target": "ergodox_ez/base"
},
"ferris/0_2": {
"target": "ferris/0_2/base"
},
"handwired/dygma/raise": {
"target": "handwired/dygma/raise/ansi"
},
"helix/pico": {
"target": "helix/pico/base"
},
"helix": {
"target": "helix/rev2/base"
},
"helix/rev2": {
"target": "helix/rev2/base"
},
"ibm/model_m/mschwingen": {
"target": "ibm/model_m/mschwingen/led_wired"
},
"mechwild/sugarglider": {
"target": "mechwild/sugarglider/wide_oled/f401"
},
"mechwild/sugarglider/wide_oled": {
"target": "mechwild/sugarglider/wide_oled/f401"
},
"novelkeys/nk65": {
"target": "novelkeys/nk65/base"
},
"sirius/uni660/rev2": {
"target": "sirius/uni660/rev2/ansi"
}
}

View File

@@ -1,7 +1,7 @@
{
"$id": "qmk.api.keyboard.v1",
"allOf": [
{"$ref": "qmk.keyboard.v1"},
{"$ref": "./keyboard.jsonschema#"},
{
"properties": {
"keymaps": {
@@ -10,8 +10,8 @@
"url": {"type": "string"}
}
},
"parse_errors": {"$ref": "qmk.definitions.v1#/string_array"},
"parse_warnings": {"$ref": "qmk.definitions.v1#/string_array"},
"parse_errors": {"$ref": "./definitions.jsonschema#/string_array"},
"parse_warnings": {"$ref": "./definitions.jsonschema#/string_array"},
"processor_type": {"type": "string"},
"protocol": {"type": "string"},
"keyboard_folder": {"type": "string"},

View File

@@ -3,15 +3,16 @@
"$id": "qmk.community_module.v1",
"title": "Community Module Information",
"type": "object",
"required": ["module_name", "maintainer"]
"required": ["module_name", "maintainer"],
"properties": {
"module_name": {"$ref": "qmk.definitions.v1#/text_identifier"},
"maintainer": {"$ref": "qmk.definitions.v1#/text_identifier"},
"module_name": {"$ref": "./definitions.jsonschema#/text_identifier"},
"maintainer": {"$ref": "./definitions.jsonschema#/text_identifier"},
"license": {"type": "string"},
"url": {
"type": "string",
"format": "uri"
},
"keycodes": {"$ref": "qmk.definitions.v1#/keycode_decl_array"},
"features": {"$ref": "qmk.keyboard.v1#/definitions/features_config"},
"keycodes": {"$ref": "./definitions.jsonschema#/keycode_decl_array"},
"features": {"$ref": "./keyboard.jsonschema#/definitions/features_config"}
}
}

View File

@@ -17,9 +17,9 @@
"additionalProperties": false,
"required": ["pin_a", "pin_b"],
"properties": {
"pin_a": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"pin_b": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"resolution": {"$ref": "qmk.definitions.v1#/unsigned_int"}
"pin_a": {"$ref": "./definitions.jsonschema#/mcu_pin"},
"pin_b": {"$ref": "./definitions.jsonschema#/mcu_pin"},
"resolution": {"$ref": "./definitions.jsonschema#/unsigned_int"}
}
}
}
@@ -28,22 +28,22 @@
"dip_switch_config": {
"type": "object",
"properties": {
"pins": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
"pins": {"$ref": "./definitions.jsonschema#/mcu_pin_array"}
}
}
"features_config": {
"$ref": "qmk.definitions.v1#/boolean_array",
"propertyNames": {"$ref": "qmk.definitions.v1#/snake_case"},
"not": {"required": ["lto"]}
},
"features_config": {
"$ref": "./definitions.jsonschema#/boolean_array",
"propertyNames": {"$ref": "./definitions.jsonschema#/snake_case"},
"not": {"required": ["lto"]}
}
},
"type": "object",
"not": {"required": ["vendorId", "productId"]}, // reject via keys...
"properties": {
"keyboard_name": {"$ref": "qmk.definitions.v1#/text_identifier"},
"keyboard_folder": {"$ref": "qmk.definitions.v1#/keyboard"},
"maintainer": {"$ref": "qmk.definitions.v1#/text_identifier"},
"manufacturer": {"$ref": "qmk.definitions.v1#/text_identifier"},
"keyboard_name": {"$ref": "./definitions.jsonschema#/text_identifier"},
"keyboard_folder": {"$ref": "./definitions.jsonschema#/keyboard"},
"maintainer": {"$ref": "./definitions.jsonschema#/text_identifier"},
"manufacturer": {"$ref": "./definitions.jsonschema#/text_identifier"},
"url": {
"type": "string",
"format": "uri"
@@ -84,6 +84,7 @@
"STM32F407",
"STM32F411",
"STM32F446",
"STM32G0B1",
"STM32G431",
"STM32G474",
"STM32H723",
@@ -118,8 +119,8 @@
"type": "object",
"additionalProperties": false,
"properties": {
"data_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"clock_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"data_pin": {"$ref": "./definitions.jsonschema#/mcu_pin"},
"clock_pin": {"$ref": "./definitions.jsonschema#/mcu_pin"},
"default_brightness": {
"type": "integer",
"minimum": 0,
@@ -144,13 +145,13 @@
"enum": ["dac_additive", "dac_basic", "pwm_software", "pwm_hardware"]
},
"macro_beep": {"type": "boolean"},
"pins": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
"pins": {"$ref": "./definitions.jsonschema#/mcu_pin_array"},
"power_control": {
"type": "object",
"additionalProperties": false,
"properties": {
"on_state": {"$ref": "qmk.definitions.v1#/bit"},
"pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}
"on_state": {"$ref": "./definitions.jsonschema#/bit"},
"pin": {"$ref": "./definitions.jsonschema#/mcu_pin"}
}
},
"voices": {"type": "boolean"}
@@ -170,20 +171,20 @@
"properties": {
"on": {"type": "boolean"},
"breathing": {"type": "boolean"},
"brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
"brightness": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}
}
},
"breathing": {"type": "boolean"},
"breathing_period": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"breathing_period": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
"levels": {
"type": "integer",
"minimum": 1,
"maximum": 31
},
"max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"pins": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
"on_state": {"$ref": "qmk.definitions.v1#/bit"},
"max_brightness": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
"pin": {"$ref": "./definitions.jsonschema#/mcu_pin"},
"pins": {"$ref": "./definitions.jsonschema#/mcu_pin_array"},
"on_state": {"$ref": "./definitions.jsonschema#/bit"},
"as_caps_lock": {"type": "boolean"}
}
},
@@ -268,7 +269,7 @@
"type": "string",
"enum": ["COL2ROW", "ROW2COL"]
},
"debounce": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"debounce": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"caps_word": {
"type": "object",
"additionalProperties": false,
@@ -276,20 +277,20 @@
"enabled": {"type": "boolean"},
"both_shifts_turns_on": {"type": "boolean"},
"double_tap_shift_turns_on": {"type": "boolean"},
"idle_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"idle_timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"invert_on_shift": {"type": "boolean"}
}
},
"combo": {
"type": "object",
"properties": {
"count": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"term": {"$ref": "qmk.definitions.v1#/unsigned_int"}
"count": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"term": {"$ref": "./definitions.jsonschema#/unsigned_int"}
}
},
"community_layouts": {
"type": "array",
"items": {"$ref": "qmk.definitions.v1#/filename"}
"items": {"$ref": "./definitions.jsonschema#/filename"}
},
"dip_switch": {
"$ref": "#/definitions/dip_switch_config",
@@ -319,10 +320,10 @@
"properties": {
"driver": {
"type": "string",
"enum": ["custom", "embedded_flash", "legacy", "rp2040_flash", "spi_flash"]
"enum": ["none", "custom", "embedded_flash", "legacy", "rp2040_flash", "spi_flash"]
},
"backing_size": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"logical_size": {"$ref": "qmk.definitions.v1#/unsigned_int"}
"backing_size": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"logical_size": {"$ref": "./definitions.jsonschema#/unsigned_int"}
}
}
}
@@ -337,12 +338,12 @@
"indicators": {
"type": "object",
"properties": {
"caps_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"num_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"scroll_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"compose": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"kana": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"on_state": {"$ref": "qmk.definitions.v1#/bit"}
"caps_lock": {"$ref": "./definitions.jsonschema#/mcu_pin"},
"num_lock": {"$ref": "./definitions.jsonschema#/mcu_pin"},
"scroll_lock": {"$ref": "./definitions.jsonschema#/mcu_pin"},
"compose": {"$ref": "./definitions.jsonschema#/mcu_pin"},
"kana": {"$ref": "./definitions.jsonschema#/mcu_pin"},
"on_state": {"$ref": "./definitions.jsonschema#/bit"}
}
},
"joystick": {
@@ -350,20 +351,20 @@
"properties": {
"enabled": {"type": "boolean"},
"driver": {"type": "string"},
"button_count": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"axis_resolution": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"button_count": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"axis_resolution": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"axes": {
"type": "object",
"propertyNames": {"enum": ["x", "y", "z", "rx", "ry", "rz"]}
"propertyNames": {"enum": ["x", "y", "z", "rx", "ry", "rz"]},
"additionalProperties": {
"oneOf": [
{
"type": "object",
"properties": {
"input_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"low": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"rest": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"high": {"$ref": "qmk.definitions.v1#/unsigned_int"}
"input_pin": {"$ref": "./definitions.jsonschema#/mcu_pin"},
"low": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"rest": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"high": {"$ref": "./definitions.jsonschema#/unsigned_int"}
}
},
{
@@ -375,20 +376,20 @@
}
}
},
"keycodes": {"$ref": "qmk.definitions.v1#/keycode_decl_array"},
"keycodes": {"$ref": "./definitions.jsonschema#/keycode_decl_array"},
"layer_lock": {
"type": "object",
"properties": {
"timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
"timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"}
}
},
"layout_aliases": {
"type": "object",
"additionalProperties": {"$ref": "qmk.definitions.v1#/layout_macro"}
"additionalProperties": {"$ref": "./definitions.jsonschema#/layout_macro"}
},
"layouts": {
"type": "object",
"propertyNames": {"$ref": "qmk.definitions.v1#/layout_macro"},
"propertyNames": {"$ref": "./definitions.jsonschema#/layout_macro"},
"additionalProperties": {
"type": "object",
"additionalProperties": false,
@@ -403,7 +404,7 @@
"additionalProperties": false,
"required": ["x", "y"],
"properties": {
"encoder": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"encoder": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"label": {
"type": "string",
"pattern": "^[^\\n]*$"
@@ -417,13 +418,13 @@
"minimum": 0
}
},
"r": {"$ref": "qmk.definitions.v1#/signed_decimal"},
"rx": {"$ref": "qmk.definitions.v1#/unsigned_decimal"},
"ry": {"$ref": "qmk.definitions.v1#/unsigned_decimal"},
"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"},
"r": {"$ref": "./definitions.jsonschema#/signed_decimal"},
"rx": {"$ref": "./definitions.jsonschema#/unsigned_decimal"},
"ry": {"$ref": "./definitions.jsonschema#/unsigned_decimal"},
"h": {"$ref": "./definitions.jsonschema#/key_unit"},
"w": {"$ref": "./definitions.jsonschema#/key_unit"},
"x": {"$ref": "./definitions.jsonschema#/key_unit"},
"y": {"$ref": "./definitions.jsonschema#/key_unit"},
"hand": {
"type": "string",
"enum": ["L", "R", "*"]
@@ -443,12 +444,24 @@
}
}
},
"host": {
"type": "object",
"properties": {
"default": {
"type": "object",
"additionalProperties": false,
"properties": {
"nkro": {"type": "boolean"}
}
}
}
},
"leader_key": {
"type": "object",
"properties": {
"timing": {"type": "boolean"},
"strict_processing": {"type": "boolean"},
"timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
"timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"}
}
},
"matrix_pins": {
@@ -458,14 +471,14 @@
"custom": {"type": "boolean"},
"custom_lite": {"type": "boolean"},
"ghost": {"type": "boolean"},
"input_pressed_state": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"io_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"input_pressed_state": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"io_delay": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"direct": {
"type": "array",
"items": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
"items": {"$ref": "./definitions.jsonschema#/mcu_pin_array"}
},
"cols": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
"rows": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
"cols": {"$ref": "./definitions.jsonschema#/mcu_pin_array"},
"rows": {"$ref": "./definitions.jsonschema#/mcu_pin_array"}
}
},
"modules": {
@@ -478,18 +491,18 @@
"type": "object",
"properties": {
"enabled": {"type": "boolean"},
"delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"interval": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"max_speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"time_to_max": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"wheel_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
"delay": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
"interval": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
"max_speed": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
"time_to_max": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
"wheel_delay": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}
}
},
"oneshot": {
"type": "object",
"properties": {
"tap_toggle": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
"tap_toggle": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"}
}
},
"led_matrix": {
@@ -497,7 +510,7 @@
"properties": {
"animations": {
"type": "object",
"propertyNames": {"$ref": "qmk.definitions.v1#/snake_case"},
"propertyNames": {"$ref": "./definitions.jsonschema#/snake_case"},
"additionalProperties": {"type": "boolean"}
},
"default": {
@@ -506,8 +519,8 @@
"properties": {
"on": {"type": "boolean"},
"animation": {"type": "string"},
"val": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
"val": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
"speed": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}
}
},
"driver": {
@@ -533,27 +546,28 @@
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
"items": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}
},
"max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"val_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"speed_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"led_flush_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"led_process_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"max_brightness": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
"timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"val_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"speed_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"led_flush_limit": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"led_process_limit": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"react_on_keyup": {"type": "boolean"},
"sleep": {"type": "boolean"},
"split_count": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {"$ref": "qmk.definitions.v1#/unsigned_int"}
"items": {"$ref": "./definitions.jsonschema#/unsigned_int"}
},
"layout": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": ["x", "y"],
"properties": {
"matrix": {
"type": "array",
@@ -564,9 +578,9 @@
"minimum": 0
}
},
"x": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"y": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"flags": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
"x": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"y": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"flags": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}
}
}
}
@@ -577,7 +591,7 @@
"properties": {
"animations": {
"type": "object",
"propertyNames": {"$ref": "qmk.definitions.v1#/snake_case"},
"propertyNames": {"$ref": "./definitions.jsonschema#/snake_case"},
"additionalProperties": {"type": "boolean"}
},
"default": {
@@ -586,10 +600,10 @@
"properties": {
"on": {"type": "boolean"},
"animation": {"type": "string"},
"hue": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"sat": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"val": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
"hue": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
"sat": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
"val": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
"speed": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}
}
},
"driver": {
@@ -617,29 +631,30 @@
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
"items": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}
},
"max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"hue_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"sat_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"val_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"speed_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"led_flush_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"led_process_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"max_brightness": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
"timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"hue_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"sat_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"val_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"speed_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"led_flush_limit": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"led_process_limit": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"react_on_keyup": {"type": "boolean"},
"sleep": {"type": "boolean"},
"split_count": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {"$ref": "qmk.definitions.v1#/unsigned_int"}
"items": {"$ref": "./definitions.jsonschema#/unsigned_int"}
},
"layout": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": ["x", "y"],
"properties": {
"matrix": {
"type": "array",
@@ -650,9 +665,9 @@
"minimum": 0
}
},
"x": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"y": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"flags": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
"x": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"y": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"flags": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}
}
}
}
@@ -664,27 +679,27 @@
"properties": {
"animations": {
"type": "object",
"propertyNames": {"$ref": "qmk.definitions.v1#/snake_case"},
"propertyNames": {"$ref": "./definitions.jsonschema#/snake_case"},
"additionalProperties": {"type": "boolean"}
},
"brightness_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"brightness_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"default": {
"type": "object",
"additionalProperties": false,
"properties": {
"on": {"type": "boolean"},
"animation": {"type": "string"},
"hue": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"sat": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"val": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
"hue": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
"sat": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
"val": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
"speed": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}
}
},
"driver": {
"type": "string",
"enum": ["apa102", "custom", "ws2812"]
},
"hue_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"hue_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"layers": {
"type": "object",
"additionalProperties": false,
@@ -699,29 +714,29 @@
"override_rgb": {"type": "boolean"}
}
},
"led_count": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"led_count": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"led_map": {
"type": "array",
"minItems": 2,
"items": {"$ref": "qmk.definitions.v1#/unsigned_int"}
"items": {"$ref": "./definitions.jsonschema#/unsigned_int"}
},
"max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"max_brightness": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
"pin": {
"$ref": "qmk.definitions.v1#/mcu_pin",
"$ref": "./definitions.jsonschema#/mcu_pin",
"$comment": "Deprecated: use ws2812.pin instead"
},
"rgbw": {
"type": "boolean",
"$comment": "Deprecated: use ws2812.rgbw instead"
},
"saturation_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"saturation_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"sleep": {"type": "boolean"},
"split": {"type": "boolean"},
"split_count": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {"$ref": "qmk.definitions.v1#/unsigned_int"}
"items": {"$ref": "./definitions.jsonschema#/unsigned_int"}
}
}
},
@@ -730,8 +745,8 @@
"additionalProperties": false,
"properties": {
"enabled": {"type": "boolean"},
"unlock_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"idle_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"unlock_timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"idle_timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"unlock_sequence": {
"type": "array",
"minItems": 1,
@@ -765,8 +780,8 @@
"properties": {
"enabled": {"type": "boolean"},
"mouse_enabled": {"type": "boolean"},
"clock_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"data_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"clock_pin": {"$ref": "./definitions.jsonschema#/mcu_pin"},
"data_pin": {"$ref": "./definitions.jsonschema#/mcu_pin"},
"driver": {
"type": "string",
"enum": ["busywait", "interrupt", "usart", "vendor"]
@@ -803,11 +818,11 @@
"properties": {
"direct": {
"type": "array",
"items": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
"items": {"$ref": "./definitions.jsonschema#/mcu_pin_array"}
},
"cols": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
"rows": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
"unused": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
"cols": {"$ref": "./definitions.jsonschema#/mcu_pin_array"},
"rows": {"$ref": "./definitions.jsonschema#/mcu_pin_array"},
"unused": {"$ref": "./definitions.jsonschema#/mcu_pin_array"}
}
}
}
@@ -834,16 +849,16 @@
"type": "object",
"additionalProperties": false,
"properties": {
"pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"pin": {"$ref": "./definitions.jsonschema#/mcu_pin"},
"matrix_grid": {
"$ref": "qmk.definitions.v1#/mcu_pin_array",
"$ref": "./definitions.jsonschema#/mcu_pin_array",
"minItems": 2,
"maxItems": 2
}
}
},
"soft_serial_pin": {
"$ref": "qmk.definitions.v1#/mcu_pin",
"$ref": "./definitions.jsonschema#/mcu_pin",
"$comment": "Deprecated: use split.serial.pin instead"
},
"soft_serial_speed": {
@@ -859,7 +874,7 @@
"type": "string",
"enum": ["bitbang", "usart", "vendor"]
},
"pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}
"pin": {"$ref": "./definitions.jsonschema#/mcu_pin"}
}
},
"transport": {
@@ -887,7 +902,7 @@
}
},
"watchdog": {"type": "boolean"},
"watchdog_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"watchdog_timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"sync_matrix_state": {
"type": "boolean",
"$comment": "Deprecated: use sync.matrix_state instead"
@@ -903,8 +918,8 @@
"additionalProperties": false,
"properties": {
"enabled": {"type": "boolean"},
"polling_interval": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
"polling_interval": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"}
}
},
"main": {
@@ -914,7 +929,7 @@
},
"matrix_grid": {
"type": "array",
"items": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"items": {"$ref": "./definitions.jsonschema#/mcu_pin"},
"$comment": "Deprecated: use split.handedness.matrix_grid instead"
}
}
@@ -936,9 +951,9 @@
"permissive_hold_per_key": {"type": "boolean"},
"retro": {"type": "boolean"},
"retro_per_key": {"type": "boolean"},
"term": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"term": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"term_per_key": {"type": "boolean"},
"toggle": {"$ref": "qmk.definitions.v1#/unsigned_int"}
"toggle": {"$ref": "./definitions.jsonschema#/unsigned_int"}
}
},
"usb": {
@@ -946,16 +961,20 @@
"additionalProperties": false,
"properties": {
"device_ver": {
"$ref": "qmk.definitions.v1#/hex_number_4d",
"$ref": "./definitions.jsonschema#/hex_number_4d",
"$comment": "Deprecated: use device_version instead"
},
"device_version": {"$ref": "qmk.definitions.v1#/bcd_version"},
"force_nkro": {"type": "boolean"},
"pid": {"$ref": "qmk.definitions.v1#/hex_number_4d"},
"vid": {"$ref": "qmk.definitions.v1#/hex_number_4d"},
"max_power": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"device_version": {"$ref": "./definitions.jsonschema#/bcd_version"},
"force_nkro": {
"type": "boolean",
"$comment": "Deprecated: use host.default.nkro instead"
},
"pid": {"$ref": "./definitions.jsonschema#/hex_number_4d"},
"vid": {"$ref": "./definitions.jsonschema#/hex_number_4d"},
"max_power": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"no_startup_check": {"type": "boolean"},
"polling_interval": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"polling_interval": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
"shared_endpoint": {
"type": "object",
"additionalProperties": false,
@@ -964,7 +983,7 @@
"mouse": {"type": "boolean"}
}
},
"suspend_wakeup_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"suspend_wakeup_delay": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"wait_for_enumeration": {"type": "boolean"}
}
},
@@ -972,9 +991,9 @@
"type": "object",
"additionalProperties": false,
"properties": {
"keys_per_scan": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"tap_keycode_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"tap_capslock_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"keys_per_scan": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
"tap_keycode_delay": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"tap_capslock_delay": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"locking": {
"type": "object",
"additionalProperties": false,
@@ -989,10 +1008,10 @@
"type": "object",
"additionalProperties": false,
"properties": {
"esc_output": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"esc_input": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"led": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"speaker": {"$ref": "qmk.definitions.v1#/mcu_pin"}
"esc_output": {"$ref": "./definitions.jsonschema#/mcu_pin"},
"esc_input": {"$ref": "./definitions.jsonschema#/mcu_pin"},
"led": {"$ref": "./definitions.jsonschema#/mcu_pin"},
"speaker": {"$ref": "./definitions.jsonschema#/mcu_pin"}
}
},
"ws2812": {
@@ -1003,10 +1022,10 @@
"type": "string",
"enum": ["bitbang", "custom", "i2c", "pwm", "spi", "vendor"]
},
"pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"pin": {"$ref": "./definitions.jsonschema#/mcu_pin"},
"rgbw": {"type": "boolean"},
"i2c_address": {"$ref": "qmk.definitions.v1#/hex_number_2d"},
"i2c_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
"i2c_address": {"$ref": "./definitions.jsonschema#/hex_number_2d"},
"i2c_timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"}
}
}
}

View File

@@ -30,10 +30,10 @@
"keycodes": {
"type": "object",
"propertyNames": {
"$ref": "qmk.definitions.v1#/hex_number_4d"
"$ref": "./definitions.jsonschema#/hex_number_4d"
},
"additionalProperties": {
"type": "object", // use 'qmk.definitions.v1#/keycode_decl' when problem keycodes are removed
"type": "object", // use './definitions.jsonschema#/keycode_decl' when problem keycodes are removed
"required": [
"key"
],

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