Commit Graph

791 Commits

Author SHA1 Message Date
Joel Challis
9f4a9d5826
Enable 'keyboard.json' as a build target (#22891) 2024-03-10 16:20:25 +11:00
Pablo Martínez
c5225ab500
[Feature] Some metadata on QGF/QFF files (#20101) 2024-03-10 00:29:09 +00:00
Joel Challis
a2c23e9419
Initial 'qmk test-c' functionality (#23038) 2024-03-05 16:59:30 +00:00
Joel Challis
c060876692
Remove cd suggestion from new-keyboard (#23194) 2024-03-02 23:23:25 +11:00
Nick Brassel
1875659df0
CLI Speed improvements. (#23189) 2024-03-02 08:45:01 +11:00
Nick Brassel
56802f506c
Ensure qmk generate-compilation-database copies to userspace as well. (#23129) 2024-02-22 12:47:42 +00:00
Pablo Martínez
6810aaf013
[Refactor] qmk find (#21096) 2024-02-17 12:28:40 +00:00
Pablo Martínez
9b0b3d7b25
[Enhancement] Prepare for SyntaxWarning (#22562) 2024-02-16 14:34:43 +00:00
Pablo Martínez
cf162f90fe
[Refactor] Break QGFImageFile's _save function into smaller pieces (#21124) 2024-02-16 13:40:21 +00:00
Joel Challis
98a68b68a4
Fix git-submodule running in wrong location (#23059) 2024-02-12 10:02:44 +00:00
Joel Challis
e7b84e1cf6
Flag invalid keyboard features during lint (#22832) 2024-02-08 06:34:48 +00:00
Joel Challis
3a13c2120a
Ensure LTO is enabled as a info.json build config option (#22932)
* feature.lto -> build.lto

* keymaps too
2024-02-01 15:45:58 +00:00
QMK Bot
2655ce58f9 Merge remote-tracking branch 'origin/master' into develop 2024-01-22 11:36:23 +00:00
Joel Challis
58721a433b
Move layout macro OOB checks to lint (#22610) 2024-01-22 11:35:51 +00:00
QMK Bot
a9e9a533aa Merge remote-tracking branch 'origin/master' into develop 2024-01-19 21:12:23 +00:00
Nick Brassel
62d19fc2ac
Copy compile_commands.json to userspace, if in use. (#22925) 2024-01-20 08:11:17 +11:00
Ryan
2b0965944d
qmk format-json: Force Unix line endings and ensure LF at EOF (#22901) 2024-01-16 17:13:58 +11:00
Ryan
1bebaa310a
CLI: Allow generation of both LED and RGB Matrix config (#22896) 2024-01-14 10:33:58 +00:00
Joel Challis
455cd65e80
Prevent qmk migrate processing unparsed info.json values (#22374) 2024-01-09 20:59:36 +11:00
Joel Challis
71257e21e6
Generate true/false for _DEFAULT_ON options (#22829) 2024-01-06 13:16:23 +00:00
Joel Challis
5267329caa
Ensure LED config is extracted when feature is disabled (#22809)
* Ensure LED config is extracted when feature is disabled

* Only attempt LED search if dd led config is missing
2024-01-04 05:47:52 +00:00
QMK Bot
f8c6c6c395 Merge remote-tracking branch 'origin/master' into develop 2023-12-15 18:49:26 +00:00
Pablo Martínez
52c794b9fc
Initial (#22671) 2023-12-16 05:48:52 +11:00
QMK Bot
f6774f2f1e Merge remote-tracking branch 'origin/master' into develop 2023-12-13 22:20:21 +00:00
Pablo Martínez
9c93f36034
[Bugfix] qmk {compile, flash} return code (#22639) 2023-12-14 09:19:49 +11:00
QMK Bot
8ba46dcf61 Merge remote-tracking branch 'origin/master' into develop 2023-12-06 07:00:10 +00:00
Sergey Vlasov
958215e9d6
Fix more qmk generate-api fallout from userspace support (#22619) 2023-12-06 17:59:42 +11:00
QMK Bot
4e836dd6cf Merge remote-tracking branch 'origin/master' into develop 2023-12-06 04:56:04 +00:00
Ryan
f1043e3a92
Fix JSON keymap URLs generated by the API (#22618) 2023-12-06 15:55:35 +11:00
QMK Bot
ca2e424b75 Merge remote-tracking branch 'origin/master' into develop 2023-12-05 13:32:43 +00:00
Joel Challis
bba5c14933
Avoid exceptions when layouts contain OOB matrix values (#22609) 2023-12-05 13:32:07 +00:00
QMK Bot
ceb15bf5db Merge remote-tracking branch 'origin/master' into develop 2023-12-02 23:58:44 +00:00
Joel Challis
98f4e9b837
Fix qmk doctor not finding binaries on Windows (#22593) 2023-12-02 23:58:12 +00:00
QMK Bot
c7a58bf280 Merge remote-tracking branch 'origin/master' into develop 2023-12-02 22:47:08 +00:00
Nick Brassel
01eed8d5d8
Dedup the list of tested userspace paths. (#22599) 2023-12-03 09:46:37 +11:00
QMK Bot
b45b3aaec7 Merge remote-tracking branch 'origin/master' into develop 2023-12-02 21:51:04 +00:00
Purdea Andrei
b68e89f846
Don't print error message when there are no row pins and no col pins (#20104)
* Don't print error message when there are no row pins and no col pins

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

* Update lib/python/qmk/info.py

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

---------

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2023-12-02 21:50:34 +00:00
QMK Bot
091310e75e Merge remote-tracking branch 'origin/master' into develop 2023-11-30 09:28:22 +00:00
Nick Brassel
024b4070c3
Fixup --no-temp for qmk mass-compile. (#22582) 2023-11-30 20:27:02 +11:00
Stefan Kerkmann
36ad597e15
lib: chibios-contrib: sync with chibios-21.11.x (#22560)
This contains commit from da78eb3759b8..9d7a7f904ed1:

    9d7a7f90 Merge pull request #382 from KarlK90/fix/rp2040-i2c-speeds
    70119934 Merge pull request #383 from
             KarlK90/fix/rp2040-usb-get-status-request
    1a1bbe6c rp2040: usb: fix usb_lld_get_status functions
    7d9212dd rp2040: i2c: fix speed calculation
    fb67e502 Merge pull request #377 from 1Conan/sn32_fix_registry
    e72939ef SN32: update registry
    5b4836ca Merge pull request #376 from dexter93/sn32_usb_v2
    5ded9de9 sn32: usb: do NOT clear interrupt status until handled
    Leftover Sonix reference code cleanup. Sometimes when there is
    traffic on more than 1 ep's packets would be dropped before they
    could be handled. Clearing the status flags after handling them
    takes care of it.
    e9a4a512 sn32: usb: only activate interrupts on lld start
    e4a35d1c sn32: fix host remote wakeup
2023-11-29 07:01:16 +01:00
Nick Brassel
b7df75e47f
Fixup compilation with qmk compile -kb zzz -km all. (#22568) 2023-11-29 13:46:10 +11:00
Nick Brassel
049e964e61
Attempt to fix configurator. (#22555) 2023-11-28 14:07:21 +00:00
Nick Brassel
5501e804ff
QMK Userspace (#22222)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-11-28 07:53:43 +11:00
Nick Brassel
0fcd13f552
[CLI] Remove duplicates from search results (#22528) 2023-11-22 12:08:26 +11:00
Nick Brassel
46b996a55e
CLI parallel search updates (#22525) 2023-11-22 11:14:34 +11:00
Sergey Vlasov
7e27d72cbc
Fix qmk find failure due to circular imports (#22523)
There was an import cycle in the Python modules:

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

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

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

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

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

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

The problem was that the statement in `_filter_keymap_targets()` that
filled `targets` had a wrong indent and therefore was executed for every
filter instead of only once after applying all filters, and
`valid_keymaps` was actually an iterator and therefore could be used
only once.  Moving the statement outside of the loop fixes the problem.
2023-11-19 08:26:00 +11:00
Nick Brassel
4938210711
CLI refactoring for common build target APIs (#22221) 2023-11-15 16:24:54 +11:00
QMK Bot
d8176fb0f2 Merge remote-tracking branch 'origin/master' into develop 2023-11-11 09:51:03 +00:00
Nick Brassel
211fbbd16d
Add qmk license-check developer-level CLI command. (#22075) 2023-11-11 20:50:33 +11:00
Joel Challis
8ea955c72f
Improve argument handling of c2json (#22170)
* Improve argument handling of c2json

* Add automagic
2023-11-01 22:37:05 +00:00
Joel Challis
b31426252e
Generate switch statement helpers for keycode ranges (#20059) 2023-11-01 13:11:42 +11:00
Joel Challis
fbbb221a31
Implement data driven lighting defaults (#21825) 2023-11-01 01:26:24 +00:00
Joel Challis
a19ae3d784
Add dd mapping for hardware based split handedness (#22369) 2023-11-01 00:55:48 +00:00
Joel Challis
17c3182b1c
Remove use of broken split.main (#22363) 2023-10-30 00:49:56 +00:00
Joel Challis
559450a099
Fix 'to_c' for config.h mappings (#22364) 2023-10-29 23:41:44 +00:00
Joel Challis
98530cad3b
Implement data driven dip switches (#22017)
* Add data driven dip switches

* Autogen weak matrix_mask
2023-10-29 01:09:02 +01:00
Joel Challis
e4c54a9612
Support additional split sync items for info.json (#22193) 2023-10-21 01:48:05 +01:00
QMK Bot
20cefe254d Merge remote-tracking branch 'origin/master' into develop 2023-10-16 22:44:27 +00:00
Nick Brassel
f6c70c40af
Allow for disabling of parallel processing of qmk find and qmk mass-compile. (#22160)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-10-17 09:43:50 +11:00
QMK Bot
690792eca9 Merge remote-tracking branch 'origin/master' into develop 2023-10-08 11:45:49 +00:00
Joel Challis
7ca652ce6d
Flag vial keymaps in 'qmk lint' (#22227) 2023-10-08 12:45:13 +01:00
QMK Bot
0ca60eb759 Merge remote-tracking branch 'origin/master' into develop 2023-10-05 23:35:02 +00:00
Nick Brassel
127560ae22
Add qmk ci-validate-aliases (#22205) 2023-10-06 10:34:23 +11:00
QMK Bot
a268437f17 Merge remote-tracking branch 'origin/master' into develop 2023-09-28 20:48:55 +00:00
Nick Brassel
c5706ef791
Allow for qmk mass-compile all:<keymap> (#22116)
Co-authored-by: Joel Challis <git@zvecr.com>
2023-09-29 06:48:20 +10:00
QMK Bot
f4677c866e Merge remote-tracking branch 'origin/master' into develop 2023-09-28 10:49:40 +00:00
Nick Brassel
fb0c64a567
Allow inline generation of compile_commands.json while doing a qmk compile, using --compiledb (#21549) 2023-09-28 11:48:58 +01:00
Joel Challis
4e86dca49d
Fix parsing/validation for 21939 (#22148) 2023-09-27 03:57:37 +01:00
QMK Bot
ac3a1c3569 Merge remote-tracking branch 'origin/master' into develop 2023-09-23 03:08:19 +00:00
Nick Brassel
73ffa4594d
Fix up qmk mass-compile makefile indenting. (#22115) 2023-09-23 13:07:38 +10:00
QMK Bot
8ea8b80b85 Merge remote-tracking branch 'origin/master' into develop 2023-09-22 02:12:53 +00:00
Nick Brassel
abd432fd7a
Allow for qmk compile -kb all. (#22022) 2023-09-22 12:12:20 +10:00
QMK Bot
24a922b54b Merge remote-tracking branch 'origin/master' into develop 2023-09-14 20:39:17 +00:00
Andrew Kannan
46d679ab11
qmk format-json: Add an in-place mode to format json command (#21610) 2023-09-14 21:38:42 +01:00
Joel Challis
de381ad3b7
Generate keymap.json config options more forcefully (#21960) 2023-09-13 01:12:46 +01:00
Joel Challis
95681b8ff4
Add *_MATRIX_LED_COUNT generation (#21110) 2023-08-27 04:00:14 +01:00
Joel Challis
27ff1d4153
Remove layout aliases from keyboard_aliases.hjson (#21658) 2023-08-01 01:54:28 +01:00
Ryan
f407d90598
keycode aliases: work around ChibiOS ch.h include guard (#21497) 2023-07-31 09:35:06 +10:00
Ryan
030511ece3
CLI: Improve error messages when layout key matrix row/col is OOB (#21640) 2023-07-31 09:34:19 +10:00
Stefan Kerkmann
a992dc8c08
[Core] Update ChibiOS-Contrib (#21553) 2023-07-17 19:55:31 +10:00
Less/Rikki
a0ea7a6b17
feat, docs: WB32 flashing (#21217) 2023-07-08 00:48:45 +10:00
QMK Bot
21263438e5 Merge remote-tracking branch 'origin/master' into develop 2023-07-07 14:08:56 +00:00
Ryan
ef39ecd1b7
Adjust width requirement for big enter (#21470) 2023-07-08 00:08:13 +10:00
QMK Bot
8974e056a9 Merge remote-tracking branch 'origin/master' into develop 2023-07-07 12:09:59 +00:00
Pablo Martínez
6bdd8e2782
[Refactor] Python-ify QP's converter code (#20102) 2023-07-07 22:09:17 +10:00
Nick Brassel
c814be0296
STM32H723 support (#21352) 2023-06-28 13:07:14 +10:00
Stefan Kerkmann
a87c74ebe1
[Bug] Fix non-functional S3 wakeup / resume from suspense (#19780)
* Update ChibiOS-Contrib for USB suspend fixes

* Remove S3 wakup workaround

ChibiOS OTGv1 driver has a remote wakeup bug that prevents the device to
resume it's operation. 02516cbc24 
introduced a hotfix that forcefully restarted the usb driver as a workaround. 
This workaround broke multiple boards which do not use this driver / 
peripheral. With the update of ChibiOS this hotfix is now obsolete.

* Remove restart_usb_driver overrides

they are no longer necessary as the workaround is not needed anymore
for stm32f4

* Remove unused RP_USB_USE_SOF_INTR defines

The SOF interrupt is enabled dynamically by the RP2040 usb driver
2023-06-26 23:55:52 +02:00
Nick Brassel
ffdc70bf0a
Consolidate KEYBOARD_OUTPUT+KEYMAP_OUTPUT=>INTERMEDIATE_OUTPUT (#21272) 2023-06-21 08:41:49 +10:00
Ryan
a9f677b518
Slightly refine g_led_config parsing (#21170) 2023-06-08 21:08:02 +01:00
Sergey Vlasov
1411c79aef
qmk find: Fix handling of functions in filters (#21090)
Functions in filters did not work properly except when used in the last
(or only) filter.  The problem was caused by the peculiarity of the
`lambda` behavior in Python — any variables from the outer scope are
captured only by reference, therefore any subsequent reassignment of
those variables is propagated to all lambdas created earlier in the same
scope.  Together with the laziness of `filter()` (it returns an iterator
which performs filtering on demand) this resulted in all function
filters using the values of the `key` and `value` variables which
correspond to the last filter in the sequence, therefore the result of
filtering was wrong if some filter with a function was not the last one
in the sequence.

Apparently the shortest way to make a Python lambda capture some
variables by value is to add arguments with default values for such
variables (default values are evaluated when the lambda is created, and
any subsequent reassignments in the outer scope no longer changes them).
This makes filters with functions work properly even when such filters
are not at the last position in the sequence.
2023-05-30 19:24:19 +01:00
Nick Brassel
5642bd1807
Fix up qmk find when not specifying filters. (#21059) 2023-05-27 13:23:07 +10:00
QMK Bot
5efdc28a86 Merge remote-tracking branch 'origin/master' into develop 2023-05-26 02:07:54 +00:00
Pablo Martínez
1c1bc565de
[Bugfix + Refactor] qmk painter-convert-graphics (#19994) 2023-05-26 03:07:06 +01:00
Joel Challis
6e41377824
qmk info - Remove printing of "Keyboard Folder" (#21033) 2023-05-24 23:27:57 +01:00
Joel Challis
fb056c5437
Update json2c to use dump_lines (#21013) 2023-05-22 07:03:59 +01:00
QMK Bot
9d96bfc5f5 Merge remote-tracking branch 'origin/master' into develop 2023-05-20 21:29:58 +00:00
Nick Brassel
420e35f922
qmk generate-make-dependencies improvements (#21001)
* Recommendations from @sigprof

* Fix CI tests
2023-05-20 22:29:21 +01:00
Ryan
6d90fa2300
qmk format-json: Expose full key path and respect sort_keys (#20836) 2023-05-20 22:15:05 +10:00