Commit Graph

65 Commits

Author SHA1 Message Date
Stefan Kerkmann c68e4dec10 [Core] suspend: suppress wake up keypress (#23389)
* suspend: suppress wake up keypress

Waking the host from suspend is done by pressing any key on the
keyboard, the regular key codes assigned to the keys are not important
and must not be sent - otherwise they usually end up in password prompts
as ghost characters that have to be deleted again. This commit adds
suppression for all keys pressed at the time of wake up. Once a key is
released it functions as a regular key again.

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

* suspend: update wake up matrix after wake up delay

If USB_SUSPEND_WAKEUP_DELAY is set, the keyboard sleeps during wake up -
which can be up to multiple seconds. To handle key presses and releases
in that time frame we have to handle the following cases:

1. Key not pressed before suspend, and not pressed after wakeup → do
   nothing (normal case).
2. Key not pressed before suspend, but pressed after wakeup → set the
   wakeup_matrix bit to 1 (so that the press and release events would be
   suppressed).
3. Key pressed before suspend, but not pressed after wakeup → do nothing
   (the release event will be generated on the first matrix_task() call
   after the wakeup).
4. Key pressed before suspend, and still pressed after wakeup → do
   nothing (the release event will be generated some time later).

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

* keyboards: anavi: macropad8: disable snake and rgb_test effects

...to shrink the binary size.
2025-11-11 23:35:03 +11:00
Joel Challis 01952bf39a Implement minimal connection update logic (#25334) 2025-11-06 23:34:23 +00:00
Joel Challis cc696a2ae8 Refactor battery driver (#25550) 2025-08-17 01:14:48 +01:00
Joel Challis 20555f9a33 Relocate AUDIO_INIT_DELAY implementation (#25491) 2025-07-14 13:53:57 +01:00
Joel Challis 05ff5443b1 Deprecate usb.force_nkro/FORCE_NKRO (#25262) 2025-05-14 22:02:43 +10:00
Joel Challis c7cb7ba976 Implement connection keycode logic (#25176) 2025-04-21 22:27:56 +01: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
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 1efc82403b Community modules (#24848) 2025-02-26 22:25:41 +11: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
Ryan 9fa91ad494 Rename process_{led,rgb}_matrix() (#23422) 2024-04-05 15:43:52 +01:00
Nick Brassel 9d9cdaaa2d Add encoder abstraction. (#21548) 2024-02-18 21:17:15 +11:00
Andre Brait 80f3da36e5 [Core] Add OS detection callbacks (#21777) 2024-02-17 01:19:02 +11:00
Joel Challis 77e8867498 Fix joystick initialization (#22953) 2024-02-17 01:14:46 +11:00
Joel Challis 5cd31fda9c Begin removal of bootmagic lite terminology (#22970) 2024-01-28 22:51:58 +00:00
Joel Challis 42245651e7 Align Dip Switch feature (#22625) 2023-12-08 15:57:34 +00:00
Joel Challis 339bff6339 Move velocikey to within rgblight (#22123) 2023-09-25 17:48:10 +01:00
jacob-w-gable 99290b4c7e Add full solenoid support on split keyboards (#21583)
Co-authored-by: Jacob Gable <jacob.gable@statheros.tech>
2023-09-25 12:23:31 +10:00
Ryan da2d2f947d quantum: remove direct quantum.h includes (#21507) 2023-07-16 23:42:56 +10:00
QMK Bot 9c9670b25f Merge remote-tracking branch 'origin/master' into develop 2023-04-30 01:57:38 +00:00
Christopher Berner 7138fa4582 Fix MATRIX_HAS_GHOST when MATRIX_COL > 16 (#20093) 2023-04-30 11:56:58 +10:00
Stefan Kerkmann fcf8b804ed [Core] Refactor keyevent_t for 1ms timing resolution (#15847) 2023-04-03 18:33:45 +10:00
Drashna Jaelre 297779385f Add last activity functions for pointing device (#20079) 2023-03-30 18:27:39 -07:00
Joel Challis c485d1cf26 Remove use of keymap.h (#20004) 2023-03-27 20:08:17 +01:00
Nick Brassel a518e1e5d8 Sync activity timestamps between sides. (#20192)
Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2023-03-21 10:16:11 +01:00
dexter93 3ae87b1555 core: allow locking the matrix state (#18852)
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2023-02-13 03:38:36 +11:00
Ryan bbf7a20b33 Refactor Leader key feature (#19632)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-02-13 03:19:02 +11:00
Ryan cf935d97ae Fix functions with empty params (#19647)
* Fix functions with empty params

* Found a bunch more
2023-01-20 16:21:17 +00:00
Christopher Hoage 9b51f02f45 Fix encoder_init call order in keyboard_init (#19140) 2022-11-27 10:07:35 +11:00
Ryan 6cc9513ab0 Digitizer feature improvements (#19034) 2022-11-12 23:28:11 +00:00
Ryan f0b2bfd5ca Programmable Button API refactor and improve docs (#18641) 2022-10-15 14:33:24 +11:00
Dasky c255174cf3 Implement split comms watchdog (#18599) 2022-10-06 20:52:42 +11:00
Ryan f80058d96e Start Bluetooth API (#18366) 2022-09-29 18:38:09 +01:00
Nick Brassel cbbb45c13f Start moving towards introspection-based data retrieval (#18441) 2022-09-29 18:25:55 +01:00
Ryan f7d2b001bc Move Bluetooth-related function calls up to host/keyboard level (#18274)
* Move Bluetooth-related function calls up to host/keyboard level

* Remove pointless set_output() call

* Move bluetooth (rn42) init to end of keyboard_init()

* Enable SPI/UART for ChibiOS targets

* Some more slight tweaks
2022-09-07 19:59:24 +01:00
Stefan Kerkmann f27b617f36 [Core] Process all changed keys in one scan loop, deprecate QMK_KEYS_PER_SCAN (#15292) 2022-08-06 20:51:13 +10:00
Drashna Jaelre 5f32690cba Move Pointing Device Initialization (#17740)
Move Pointing Device Initialization to after Split Post Initialization

If both pointing device and split is enabled, the pointing device init needs to be called after the split post init, otherwise the connection (serial/etc) isn't initialized yet, and any commands that need to send data over (such as calling the set cpi command) never get sent over.
2022-07-21 10:16:44 -07:00
precondition 7060cb7b26 Refactor steno and add STENO_PROTOCOL = [all|txbolt|geminipr] (#17065)
* Refactor steno into STENO_ENABLE_[ALL|GEMINI|BOLT]

* Update stenography documentation

* STENO_ENABLE_TXBOLT → STENO_ENABLE_BOLT

TXBOLT is a better name but BOLT is more consistent with the
pre-existing TX Bolt related constants, which all drop the "TX " prefix

* Comments

* STENO_ENABLE_[GEMINI|BOLT|ALL] → STENO_PROTOCOL = [geminipr|txbolt|all]

* Add note on lacking V-USB support

* Clear chord at the end of the switch(mode){send_steno_chord} block

* Return true if NOEVENT

* update_chord_xxx → add_xxx_key_to_chord

* Enable the defines for all the protocols if STENO_PROTOCOL = all

* Mention how to use `steno_set_mode`

* Set the default steno protocol to "all"

This is done so that existing keymaps invoking `steno_set_mode` don't
all suddenly break

* Add data driver equivalents for stenography feature

* Document format of serial steno packets

(Thanks dnaq)

* Add missing comma
2022-06-23 20:43:24 +02: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
Joel Challis d458d4a596 Move disable_jtag to platforms (#16960) 2022-04-29 01:23:50 +01: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
QMK Bot 4ce0203208 Merge remote-tracking branch 'origin/master' into develop 2022-04-09 18:49:52 +00:00
Simon Arlott 84c9d6ff39 [Bug] Fix matrix scan reporting interval (#16825) 2022-04-09 11:49:20 -07:00
Stefan Kerkmann 7e669421f8 Rename TICK to TICK_EVENT to prevent naming conflicts (#16649) 2022-03-14 20:06:21 +00:00
QMK Bot 63646e8906 Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
Joel Challis a8700404f7 Relocate matrix_init_quantum content (#15953)
* Relocate matrix_init_quantum content

* Update include order

* Fix cherry pick from 15722
2022-01-23 02:41:57 +00: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
Joel Challis d840ef2b28 Relocate matrix_scan_quantum tasks (#15882)
* Move matrix_scan_quantum tasks

* Fix tests

* Fix up missing refs
2022-01-19 17:38:48 +00:00
Joel Challis 7562f6644f Slight tidy up of keyboard task loop (#15725) 2022-01-09 03:50:44 +00:00