No description
Find a file
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
.github Bump actions/download-artifact from 5 to 6 (#25746) 2025-11-06 23:38:36 +00:00
.vscode Use relative paths for schemas, instead of $id. Enables VScode validation. (#25251) 2025-05-19 22:10:39 +10:00
builddefs Bump vite from 5.4.20 to 5.4.21 in /builddefs/docsgen (#25740) 2025-10-21 10:57:34 +01:00
data [Core] Speculative Hold option for mod-taps: hold mods instantly while unsettled. (#25572) 2025-11-11 22:27:12 +11:00
docs [Feature Improvement]add option to keep layer state when recording dynamic macros (#24418) 2025-11-11 23:30:42 +11:00
drivers Merge remote-tracking branch 'origin/master' into develop 2025-11-11 12:21:26 +00:00
keyboards [Core] suspend: suppress wake up keypress (#23389) 2025-11-11 23:35:03 +11:00
layouts Remove deprecated RGB_ and Mouse keycodes (#25444) 2025-07-11 11:05:41 -06:00
lib Generate CUSTOM_MATRIX = lite without matrix_pins.custom (#25453) 2025-11-08 20:48:48 +00:00
modules/qmk Enable community modules to define LED matrix and RGB matrix effects. (#25187) 2025-05-12 09:30:19 +10:00
platforms [Core] suspend: suppress wake up keypress (#23389) 2025-11-11 23:35:03 +11:00
quantum [Core] suspend: suppress wake up keypress (#23389) 2025-11-11 23:35:03 +11:00
tests [Core] Speculative Hold option for mod-taps: hold mods instantly while unsettled. (#25572) 2025-11-11 22:27:12 +11:00
tmk_core [Core] suspend: suppress wake up keypress (#23389) 2025-11-11 23:35:03 +11:00
users Add EOL to non-keyboard files (#24990) 2025-03-06 23:17:51 +00:00
util Align drivers.txt to qmk_toolbox (#25713) 2025-10-10 23:17:27 +01:00
.clang-format Clang-format tweaks (#15906) 2022-02-11 20:00:34 -08:00
.clangd More compiledb fixes. (#25355) 2025-06-15 11:56:10 +10:00
.editorconfig .editorconfig: fix inline comment, tidy name section for yaml (#24416) 2024-09-21 19:48:31 +01:00
.gitattributes eol=lf, where appropriate (#15752) 2022-01-05 21:56:31 +00:00
.gitignore [docs] Replace Imgur-hosted images (#25690) 2025-11-04 00:05:39 +00:00
.gitmodules [Core] Quantum Painter - LVGL Integration (#18499) 2022-12-13 07:51:14 +11:00
Doxyfile Remove arm_atsam platform (#24337) 2024-09-02 03:48:17 +01:00
doxygen-todo Remove SERIAL_LINK feature (#14727) 2021-10-07 12:32:05 +11:00
LICENSE add an explicit lisence file for github to pickup 2017-11-13 20:50:54 -05:00
license_GPLv2.md Clarify the quantum license (#1042) 2017-03-28 15:20:36 -07:00
license_GPLv3.md Clarify the quantum license (#1042) 2017-03-28 15:20:36 -07:00
license_Modified_BSD.md Clarify the quantum license (#1042) 2017-03-28 15:20:36 -07:00
Makefile Remove DEFAULT_FOLDER handling (#23281) 2025-06-09 05:08:56 +01:00
nose2.cfg Setup a python test framework 2019-09-07 07:58:41 -07:00
paths.mk Remove quantum/audio from global VPATH (#18753) 2022-10-20 14:41:45 +01:00
readme.md Branch point for 2025q4 breaking changes 2025-09-06 17:57:39 +10:00
requirements-dev.txt Macros in JSON keymaps (#14374) 2021-11-22 11:11:35 -08:00
requirements.txt Align to latest CLI dependencies (#24553) 2025-03-20 14:04:10 +11:00
setup.cfg Quantum Painter (#10174) 2022-04-13 18:00:18 +10:00

THIS IS THE DEVELOP BRANCH

Warning- This is the develop branch of QMK Firmware. You may encounter broken code here. Please see Breaking Changes for more information.

Quantum Mechanical Keyboard Firmware

Current Version Discord Docs Status GitHub contributors GitHub forks

This is a keyboard firmware based on the tmk_keyboard firmware with some useful features for Atmel AVR and ARM controllers, and more specifically, the OLKB product line, the ErgoDox EZ keyboard, and the Clueboard product line.

Documentation

The docs are powered by VitePress. They are also viewable offline; see Previewing the Documentation for more details.

You can request changes by making a fork and opening a pull request.

Supported Keyboards

The project also includes community support for lots of other keyboards.

Maintainers

QMK is developed and maintained by Jack Humbert of OLKB with contributions from the community, and of course, Hasu. The OLKB product firmwares are maintained by Jack Humbert, the Ergodox EZ by ZSA Technology Labs, the Clueboard by Zach White, and the Atreus by Phil Hagelberg.

Official Website

qmk.fm is the official website of QMK, where you can find links to this page, the documentation, and the keyboards supported by QMK.