Go to file
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
.github Bump tj-actions/changed-files from 35 to 36 (#21058) 2023-05-30 02:10:57 +01:00
.vscode Far better VSCode intellisense support using clangd. (#20382) 2023-05-14 15:32:34 +10:00
builddefs Implement UF2 device type id extension tag (#21029) 2023-05-25 23:07:47 +01:00
data Consolidate modelm v2 (#14996) 2023-05-27 23:12:36 +10:00
docs Remove outdated remarks regarding the default MT behavior (#21077) 2023-05-30 02:08:15 +01:00
drivers [BUG] Allow multiple IS31FL3741 drivers per board in rgb_matrix (#20988) 2023-05-27 13:26:14 +10:00
keyboards Encoder map: NUM_DIRECTIONS (#21066) 2023-05-28 13:38:24 +10:00
layouts Merge remote-tracking branch 'origin/master' into develop 2023-05-14 07:16:04 +00:00
lib `qmk find`: Fix handling of functions in filters (#21090) 2023-05-30 19:24:19 +01:00
platforms Duplicate board files for blok converter (#20629) 2023-05-22 07:04:19 +01:00
quantum [BUG] Allow multiple IS31FL3741 drivers per board in rgb_matrix (#20988) 2023-05-27 13:26:14 +10:00
tests [Bug] Fix issue with Repeat Key-Combo test (#21005) 2023-05-20 21:22:46 +01:00
tmk_core Disable specific warnings to mitigate compilation problems with `KEEP_INTERMEDIATES=yes`. (#20339) 2023-04-05 14:59:09 +10:00
users Keymap introspection for combos. (#19670) 2023-05-15 22:27:37 +10:00
util Implement UF2 device type id extension tag (#21029) 2023-05-25 23:07:47 +01:00
.clang-format Clang-format tweaks (#15906) 2022-02-11 20:00:34 -08:00
.clangd Far better VSCode intellisense support using clangd. (#20382) 2023-05-14 15:32:34 +10:00
.editorconfig QMK CLI and JSON keymap support (#6176) 2019-07-15 12:14:27 -07:00
.gitattributes eol=lf, where appropriate (#15752) 2022-01-05 21:56:31 +00:00
.gitignore Merge remote-tracking branch 'origin/master' into develop 2023-04-11 01:44:24 +00:00
.gitmodules [Core] Quantum Painter - LVGL Integration (#18499) 2022-12-13 07:51:14 +11:00
Doxyfile Internal docs generation updates (#16411) 2022-02-21 15:47:44 +00:00
LICENSE
Makefile Remove `make all-<platform>` build targets (#19496) 2023-01-19 10:44:41 +11:00
doxygen-todo Remove SERIAL_LINK feature (#14727) 2021-10-07 12:32:05 +11:00
license_GPLv2.md
license_GPLv3.md
license_Modified_BSD.md
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 Remove `develop` note in readme. 2023-05-29 06:16:06 +10:00
requirements-dev.txt Macros in JSON keymaps (#14374) 2021-11-22 11:11:35 -08:00
requirements.txt Align CLI requirements (#18117) 2022-08-21 18:38:17 +01:00
setup.cfg Quantum Painter (#10174) 2022-04-13 18:00:18 +10:00
shell.nix Nix shell updates for `develop` (#18131) 2022-08-23 02:59:33 +01:00

readme.md

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 Docsify and hosted on GitHub. 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, or by clicking the "Edit this page" link at the bottom of any page.

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.