Commit graph

192 commits

Author SHA1 Message Date
Ilya Zhuravlev
7b247bc800 Merge remote-tracking branch 'qmk/master' into merge-2025-06-21 2025-06-21 16:00:42 -06:00
Ilya Zhuravlev
6aedbad57c Merge remote-tracking branch 'qmk/master' into merge-2025-03-22 2025-03-22 23:00:09 -06: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 2a2771068c7ee545ffac4103aa07e847a9ec3816.

* Revert "Attempt at simplifying interface."

This reverts commit 8eaf67de76e75bc92d106a8b0decc893fbc65fa5.

* 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
Nick Brassel
1efc82403b
Community modules (#24848) 2025-02-26 22:25:41 +11:00
Ilya Zhuravlev
760225f515 Merge remote-tracking branch 'qmk/master' into merge-2025-02-08 2025-02-08 20:14:59 -06:00
Joel Challis
968a611476
Review fixes for layer lock feature (#24627) 2024-11-21 13:02:49 +00:00
Drashna Jaelre
36b5559b99
[Core] Add Layer Lock feature (#23430)
Co-authored-by: Daniel <1767914+iamdanielv@users.noreply.github.com>
Co-authored-by: Pascal Getreuer <getreuer@google.com>
Co-authored-by: Pascal Getreuer <50221757+getreuer@users.noreply.github.com>
2024-11-21 17:31:54 +11:00
Andre Brait
3cf94cb308
Add easier way to set default single layer (#24376)
* Add set_single_default_layer to match set_single_persistent_default_layer
* Implements exactly the same behavior, except the write to EEPROM
2024-10-06 21:39:21 +13:00
Ilya Zhuravlev
17e46fcec7 Merge remote-tracking branch 'qmk/master' into merge-2024-04-15 2024-04-15 19:43:02 -06:00
Andre Brait
80f3da36e5
[Core] Add OS detection callbacks (#21777) 2024-02-17 01:19:02 +11:00
Joel Challis
5cd31fda9c
Begin removal of bootmagic lite terminology (#22970) 2024-01-28 22:51:58 +00:00
Ilya Zhuravlev
66574eb854 Merge remote-tracking branch 'qmk/master' into merge-2023-12-16 2023-12-16 10:48:34 -06:00
Drashna Jaelre
3ef06aa732
Improve and Cleanup Shutdown callbacks (#21060)
Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
2023-11-26 22:59:18 +11:00
Ryan
1bff37781b
Prep work for NKRO report separation (#22268)
* Clean up some keyboard/userspace code

* Rename `KEYBOARD_REPORT_BITS` -> `NKRO_REPORT_BITS`

* Add some missing includes

* Use `PACKED` define for report types

* Fix incorrect function signatures for FlexRAM EEPROM driver
2023-10-14 13:21:20 +02:00
Ilya Zhuravlev
e390a34128 Merge remote-tracking branch 'qmk/master' into merge-2023-09-08 2023-09-08 20:53:27 -06:00
Ryan
aec7f29df7
Add mousekey.h include to quantum.h (#21897) 2023-09-04 03:14:14 +01:00
Ryan
70e34e491c
Unicode, Unicodemap and UCIS refactor (#21659) 2023-08-27 13:30:19 +10:00
Ryan
4af6f1df06
quantum.h: clean up process_keycode includes (#21579) 2023-07-29 15:05:15 +10:00
Ilya Zhuravlev
d6e95213e3 Merge remote-tracking branch 'qmk/master' into merge-2023-06-03 2023-06-03 12:35:25 -06:00
Pascal Getreuer
3993b15f05
[Core] Add Repeat Key ("repeat last key") as a core feature. (#19700)
Co-authored-by: casuanoob <96005765+casuanoob@users.noreply.github.com>
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2023-05-20 22:35:06 +10:00
Albert Y
128f808496
Add a user callback for pre process record (#20584) 2023-05-13 08:42:06 +01:00
Joel Challis
c485d1cf26
Remove use of keymap.h (#20004) 2023-03-27 20:08:17 +01:00
Ilya Zhuravlev
06a2fdcc9c Merge remote-tracking branch 'qmk/master' into merge-2023-03-12 2023-03-18 17:51:58 -06:00
Ryan
bbf7a20b33
Refactor Leader key feature (#19632)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-02-13 03:19:02 +11:00
Drashna Jaelre
fe02abc479
[Core] Tri Layer Keys (#19795)
Co-authored-by: wilba <wilba@wilba.tech>
Co-authored-by: Pablo Martínez <58857054+elpekenin@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2023-02-12 10:23:07 +11:00
Joel Challis
d84a7351ea
Strip out more of config_common (#19722) 2023-01-30 20:40:12 +00:00
Ryan
6cc9513ab0
Digitizer feature improvements (#19034) 2022-11-12 23:28:11 +00:00
Nick Brassel
5233c69bc6
Remove thermal printer. (#18959) 2022-11-06 00:15:55 +11:00
Drashna Jaelre
fb29c0ae53
[Core] Add getreuer's Autocorrect feature to core (#15699)
Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com>
2022-09-17 17:50:54 +10:00
Ryan
3d667f0970
Refactor Unicode feature (#18333) 2022-09-12 08:49:04 -07:00
Ilya Zhuravlev
d4fa6703b8 Merge remote-tracking branch 'qmk/master' into merge-2022-09-10 2022-09-10 04:10:44 -06:00
JayceFayne
d02cefe613
implement tap_code16_delay (#17748) 2022-07-23 19:21:20 +01:00
Ilya Zhuravlev
fde0c10bae Merge remote-tracking branch 'qmk/master' into merge-2022-07-11 2022-07-11 18:40:32 -06:00
Ryan
3ecb0a80af
Feature-ify Send String (#17275) 2022-07-02 22:10:08 +10:00
Nick Brassel
8545473307
Removes terminal from QMK. (#17258) 2022-05-30 22:38:08 -07:00
Pascal Getreuer
68b16bba68
[Core] Add Caps Word feature to core (#16588)
Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-05-14 16:00:32 +10:00
Drashna Jaelre
787a68948f
[Core] Add Reboot keycode to core (#15990) 2022-05-14 13:35:49 +10:00
Joel Challis
92a61aa0cd
Implement XAP 'secure' core requirements (#16843)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2022-04-16 11:13:05 -07:00
Nick Brassel
1f2b1dedcc
Quantum Painter (#10174)
* Install dependencies before executing unit tests.

* Split out UTF-8 decoder.

* Fixup python formatting rules.

* Add documentation for QGF/QFF and the RLE format used.

* Add CLI commands for converting images and fonts.

* Add stub rules.mk for QP.

* Add stream type.

* Add base driver and comms interfaces.

* Add support for SPI, SPI+D/C comms drivers.

* Include <qp.h> when enabled.

* Add base support for SPI+D/C+RST panels, as well as concrete implementation of ST7789.

* Add support for GC9A01.

* Add support for ILI9341.

* Add support for ILI9163.

* Add support for SSD1351.

* Implement qp_setpixel, including pixdata buffer management.

* Implement qp_line.

* Implement qp_rect.

* Implement qp_circle.

* Implement qp_ellipse.

* Implement palette interpolation.

* Allow for streams to work with either flash or RAM.

* Image loading.

* Font loading.

* QGF palette loading.

* Progressive decoder of pixel data supporting Raw+RLE, 1-,2-,4-,8-bpp monochrome and palette-based images.

* Image drawing.

* Animations.

* Font rendering.

* Check against 256 colours, dump out the loaded palette if debugging enabled.

* Fix build.

* AVR is not the intended audience.

* `qmk format-c`

* Generation fix.

* First batch of docs.

* More docs and examples.

* Review comments.

* Public API documentation.
2022-04-13 18:00:18 +10:00
Ryan
c05e8afe45
Joystick feature updates (#16732)
* Joystick feature updates

* Move new functions to joystick.h

* Docs
2022-03-26 18:38:09 +00:00
Ilya Zhuravlev
3a3c93383f Merge remote-tracking branch 'qmk/master' into merge-2022-03-06 2022-03-06 20:07:17 -06:00
Joel Challis
6e83b44940
Align location of some host led logic (#15954)
* Align location of host led logic

* Move more

* align ifdefs

* Fix up includes

* Move callback defs

* Convert comment to build message
2022-01-22 21:17:02 +00:00
Ilya Zhuravlev
f0ae3fb701 Merge remote-tracking branch 'qmk/master' into merge-2021-12-11 2021-12-11 20:19:52 -05:00
Drashna Jaelre
5f7c0e3097
Add missing define for unicode common (#15416) 2021-12-06 11:36:30 -08:00
precondition
4bac5f53d8
New feature: DYNAMIC_TAPPING_TERM_ENABLE (#11036)
* New feature: `DYNAMIC_TAPPING_TERM_ENABLE`

3 new quantum keys to configure the tapping term on the fly.

* Replace sprintf call in tapping_term_report by get_u16_str

* Replace tab with 4 spaces
2021-11-26 07:06:50 +11:00
Drashna Jaelre
32a87d3517
Add uint to char functions (#15244)
* Add uint to char functions

* appease the all mighty lint

* Further appease Lint

* Update functions

* Add doxygen comment

* Update quantum/quantum.c

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

* Apply suggestions from code review

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

* Add declaration for get_numeric_string

* fix formatting and bug

Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-11-23 08:13:22 +11:00
Nick Brassel
36d123e9c5
Add support for deferred executors. (#14859)
* Add support for deferred executors.

* More docs.

* Include from quantum.h

* Cleanup.

* Parameter checks

* Comments.

* qmk format-c

* I accidentally a few words.

* API name change.

* Apply suggestions from code review

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

* Review comments.

* qmk format-c

* Review comments.

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2021-11-15 18:21:09 +00:00
Drashna Jaelre
56e3f06a26
Rework and expand Pointing Device support (#14343)
Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
2021-11-14 22:03:24 -08:00
Ryan
d8f0c8783a
Remove sysex API (#14723) 2021-10-06 19:34:46 +11:00
Thomas Weißschuh
83988597f4
Add Support for USB programmable buttons (#12950) 2021-09-15 08:40:22 -07:00