No description
Find a file
フィルターペーパー 4bd5c033c3
Refactor debounce algorithm with static allocation (#25515)
* Refactor debounce counters with direct indexing

* Refactor code to use array indexing for debounce_counters
* Use global MATRIX_ROW_SHIFTER macro

* Refactor debounce algorithm with static allocation

* Converted arrays to static allocation
* Standardised use of MATRIX_ROWS_PER_HAND for array sizing
* Added Doxygen comments for primary debounce functions
* Removed debounce_free()

* Rewrite sym_defer_pr

* Modernise code using sym_defer_pk as template
* Format consistency with other current algorithms

* Use shorter SPDX-License-Identifier

* Remove ChibiOS core memory manager guard
* Keep type definition within DEBOUNCE guard

* Add change log

* Minor optimisation refactor

* Pre-calculate row_offset in per-key matrix loops
* Add inline compiler hints
* Improve readability with blank lines

* Limit elapsed time to the maximum debounce value

* Apply suggestions from code review

Declare counters with "DEBOUNCE_ELAPSED"

Co-authored-by: Joel Challis <git@zvecr.com>

* Update change log to new breaking change date

---------

Co-authored-by: Joel Challis <git@zvecr.com>
2025-09-07 13:34:05 +01:00
.github Bump actions/labeler from 5 to 6 (#25604) 2025-09-07 13:08:17 +01:00
.vscode Use relative paths for schemas, instead of $id. Enables VScode validation. (#25251) 2025-05-19 22:10:39 +10:00
builddefs Refactor battery driver (#25550) 2025-08-17 01:14:48 +01:00
data Refactor tweetydabird/lotus58 (#25547) 2025-08-17 17:50:59 +01:00
docs Refactor debounce algorithm with static allocation (#25515) 2025-09-07 13:34:05 +01:00
drivers Refactor battery driver (#25550) 2025-08-17 01:14:48 +01:00
keyboards Remove duplication of RP2040 config defaults (#25563) 2025-09-06 14:48:07 -07:00
layouts Remove deprecated RGB_ and Mouse keycodes (#25444) 2025-07-11 11:05:41 -06:00
lib Fix serial speed DD configuration & migrate keyboards (#25546) 2025-08-09 23:14:40 +01:00
modules/qmk Enable community modules to define LED matrix and RGB matrix effects. (#25187) 2025-05-12 09:30:19 +10:00
platforms Configure SPI for QMK_PM2040 board (#25481) 2025-07-13 17:00:10 +01:00
quantum Refactor debounce algorithm with static allocation (#25515) 2025-09-07 13:34:05 +01:00
tests Remove deprecated RGB_ and Mouse keycodes (#25444) 2025-07-11 11:05:41 -06:00
tmk_core Align sleep_led logic (#25395) 2025-06-27 08:17:28 +01:00
users Add EOL to non-keyboard files (#24990) 2025-03-06 23:17:51 +00:00
util Add cachyos as pattern when installing dependencies (#25580) 2025-08-25 07:47:28 +10: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 Add zip to .gitignore (#25483) 2025-07-12 16:56:32 +01: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.