Open-source keyboard firmware for Atmel AVR and Arm USB families
Go to file
Takeshi ISHII ac2e6e01f1
Change the prototype of matrix_output_unselect_delay() (#13045)
The prototype of matrix_output_unselect_delay() has been changed as follows.

```c
void matrix_output_unselect_delay(uint8_t line, bool key_pressed);
```

Currently, no keyboard seems to be redefining `matrix_output_unselect_delay()`, so there is no change in the system behavior.

With this change, the keyboard level code can get some optimization hints, for example, the following.

```c
 void matrix_output_unselect_delay(uint8_t line, bool key_pressed) {
     /* If none of the keys are pressed,
      *  there is no need to wait for time for the next line. */
     if (key_pressed) {
 #ifdef MATRIX_IO_DELAY
 #  if MATRIX_IO_DELAY > 0
         wait_us(MATRIX_IO_DELAY);
 #  endif
 #else
         wait_us(30);
 #endif
     }
}
```
2021-07-13 16:50:25 +09:00
.github enable manual trigger for api data (#13000) 2021-07-09 09:10:45 -07:00
.vscode do not automatically format json (#13320) 2021-06-25 22:47:48 -07:00
api_data Generate api data on each push (#10609) 2020-10-25 14:48:44 -07:00
bin Ensure that safe_commands always run (#13199) 2021-06-14 16:51:58 -07:00
data Adds support for STM32L412xB, STM32L422xB. (#13383) 2021-06-30 10:07:40 +10:00
docs Enable g_is31_leds PROGMEM for RGB Matrix IS31FL3737 driver (#13480) 2021-07-12 08:51:23 -07:00
drivers Enable g_is31_leds PROGMEM for RGB Matrix IS31FL3737 driver (#13480) 2021-07-12 08:51:23 -07:00
keyboards Merge remote-tracking branch 'origin/master' into develop 2021-07-12 17:15:14 +00:00
layouts keymap_extras: Remove deprecated defines (#12949) 2021-07-06 09:05:11 +10:00
lib Matrix consistency check (#13470) 2021-07-11 09:43:58 -07:00
nix Update Python dependencies for Nix (#12855) 2021-06-20 14:30:16 +01:00
platforms/chibios [Core] Unite half-duplex and full-duplex serial drivers (#13081) 2021-07-02 08:24:08 +10:00
quantum Change the prototype of matrix_output_unselect_delay() (#13045) 2021-07-13 16:50:25 +09:00
tests Missed a couple more #pragma onces (#11351) 2020-12-30 15:44:53 +00:00
tmk_core Enable g_is31_leds PROGMEM for RGB Matrix IS31FL3737 driver (#13480) 2021-07-12 08:51:23 -07:00
users keymap_extras: Remove deprecated defines (#12949) 2021-07-06 09:05:11 +10:00
util Merge remote-tracking branch 'origin/master' into develop 2021-07-06 14:56:47 +00:00
.clang-format
.editorconfig
.gitattributes [nix] Use niv and poetry2nix to more easily manage dependencies (#11181) 2021-04-03 08:05:46 -07:00
.gitignore Cleanup gitignore (#13390) 2021-07-02 16:08:34 +10:00
.gitmodules 2020 May 30 Breaking Changes Update (#9215) 2020-05-30 13:14:59 -07:00
.travis.yml CI: Add workflow for codebase formatting (#7382) 2020-12-10 17:01:51 +00:00
book.json
bootloader.mk Change Lufa-MS size (#13183) 2021-06-15 21:28:17 -07:00
build_full_test.mk Ensure single newline at EOF for core files (#11310) 2020-12-28 04:36:32 +11:00
build_json.mk Fixing incorrect keymap build when switching between multiple keymap.jsons (#12632) 2021-06-19 15:30:23 -07:00
build_keyboard.mk [Core] Unite half-duplex and full-duplex serial drivers (#13081) 2021-07-02 08:24:08 +10:00
build_layout.mk Fix building layouts from JSON (#13310) 2021-06-27 12:52:38 +10:00
build_test.mk Avoid 8-bit timer overflows in debounce algorithms (#12240) 2021-06-09 17:23:21 +10:00
CODE_OF_CONDUCT.md
common_features.mk Unify matrix for split common and regular matrix (#13330) 2021-07-11 14:31:35 -07:00
common.mk 2020 November 28 Breaking Changes Update (#11053) 2020-11-28 12:02:18 -08:00
disable_features.mk Add a <FEATURE>_SUPPORTED flag (#9058) 2021-01-30 13:08:58 -08:00
Dockerfile
Doxyfile
doxygen-todo Remove iWRAP protocol (#9284) 2020-08-29 14:30:02 -07:00
LICENSE add an explicit lisence file for github to pickup 2017-11-13 20:50:54 -05:00
license_GPLv2.md
license_GPLv3.md
license_Modified_BSD.md
Makefile CLI: Add subcommand to generate version.h (#13151) 2021-06-27 02:29:02 +10:00
message.mk Update MSG_PYTHON_MISSING (#13427) 2021-07-06 15:34:04 +10:00
nose2.cfg
readme.md 2021 February 27 Breaking Changes Changelog (#11975) 2021-02-27 12:10:23 -08:00
requirements-dev.txt Move hid and pyusb to requirements.txt (#13134) 2021-06-07 16:30:55 -07:00
requirements.txt Update requirements.txt (#13135) 2021-06-08 00:37:58 +01:00
secrets.tar.enc update building for .hex, secrets moving 2017-08-21 21:57:46 -04:00
setup.cfg Use the schema to eliminate custom code (#11108) 2021-01-09 13:34:14 -08:00
shell.nix Update Python dependencies for Nix (#12855) 2021-06-20 14:30:16 +01:00
show_options.mk Improve 'show_build_options' target (#13425) 2021-07-03 07:43:49 -07:00
testlist.mk Avoid 8-bit timer overflows in debounce algorithms (#12240) 2021-06-09 17:23:21 +10:00
Vagrantfile Upgrades Vagrant box to Debian 10 to fix Docker build error on Debian 9. (#13236) 2021-06-19 13:52:34 +01:00

Quantum Mechanical Keyboard Firmware

Current Version Build Status 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.