-
-
Notifications
You must be signed in to change notification settings - Fork 39.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Move keyboard USB IDs and strings to data driven: 0-9 #16481
Conversation
* qmk/develop: (696 commits) Sentence correction (qmk#16650) [Keyboard] Add via keymap to AL1 (qmk#16499) Rename TICK to TICK_EVENT to prevent naming conflicts (qmk#16649) [Keyboard] Add BAMFK-1 (qmk#16409) Disable RGB matrix pixel animations for some boards (qmk#16643) keebio/iris: Add ifdefs to encoder callbacks (qmk#16642) bolsa/damapad - Fix missing layout macro (qmk#16639) Mousekeys fix (qmk#16640) Fix oneshot toggle logic (qmk#16630) Fix 40percentclub USB descriptors (qmk#16638) [Core] Move `has_mouse_report_changed` function to `report.c` (qmk#16543) ISP flashing guide: add instructions for flashing STM32duino bootloader (qmk#16568) Move keyboard USB IDs and strings to data driven: 0-9 (qmk#16481) USB-USB converter cleanup (qmk#16618) [Keyboard] Add "Uno" rev2 (qmk#14071) [Keyboard] Add support for Jels60 (qmk#16605) helix:edvorakjp keymap change to use split_common (qmk#16532) [Keymap] Update personal crkbd keymap (qmk#16624) [Keyboard] add missing endif in glitch keyboard (qmk#16629) [Keyboard] Add damapad (qmk#16443) ...
Is this change involved with the build process? What will happen if info.json doesn't exist (e.g. fast prototyping)? |
Sometimes just hand craft the minimum of required files rather than run qmk cli: config.h, kb.h, kb.c, rules.mk, and a default keymap.c. Focusing the major idea, and most of other fields may be omitted and fall back to qmk default. |
info.json will eventually become the main config file for QMK keyboards. A lot of things from those files can already be defined there instead. For the moment you can still specify the manufacturer and product strings in config.h, but after the next breaking changes merge (not this upcoming one), they will need to be actual string literals, eg: #define MANUFACTURER "blah" The reason for this is that without the quotes, the preprocessor can potentially mangle the strings because a word matches some other defined symbol. Here's an example from the Discord: #define PRODUCT 3x4 F13 - F24 Function Keyboard This gets preprocessed, baked into the firmware, and shown in Device Manager as:
Using string literals will also allow for better Unicode support. These PRs were aimed at making this transition easier; after all of the strings have been moved to info.json, only the USB descriptor code and the CLI generation for the defines needs to be changed, and that makes for a much smaller and more easily reviewable diff. |
Got it. Thanks for the details. |
Description
Some have been left out due to an issue with the ordering in which
info.json
s at multiple levels are merged together, that will need to be resolved. For now, these can be done.Types of Changes
Issues Fixed or Closed by This PR
Checklist