qmk-dactyl-manuform-a/docs
vectorstorm c9fd698711
Reimplements WPM feature to be smaller & precise (#13902)
* Reimplements WPM feature.

 - Now calculates exact WPM over the last up to three seconds of typing.
 - WPM_SMOOTHING removed, as it's no longer needed.
 - WPM_SAMPLE_SECONDS added, to specify how long a period to average WPM
   over, set to 5 seconds by default.
 - WPM_SAMPLE_PERIODS added, to specify how many sampling buffers we'll
   use.  Each one uses one extra byte of space.  Having more will lead
   to smoother decay of WPM values.  Defaults to 50 (we're saving so
   many bytes of firmware space I felt like being extravagent, and this
   change is still a big size saving overall)
 - WPM_UNFILTERED option added (defaults to unset), which disables all
   filtering within the WPM feature.  This saves some space in the
   firmware and also reduces latency between typing and the WPM
   calculation measuring it.  (saves 70 bytes in my tests)
 - WPM_LAUNCH_CONTROL added (defaults to unset).  When typing begins
   while the current displayed WPM value is zero, the WPM calculation
   only considers the time elapsed since typing began, not the whole
   WPM_SAMPLE_SECONDS buffer.  The result of this is that the displayed
   WPM value much more rapidly reaches an accurate WPM value, even when
   results are being filtered. (costs 22 bytes in my tests)
 - Updates documentation to reflect changed options.

Saves about 900 bytes, in my tests, compared against the previous implementation,
with default settings.

* Apply suggestions from code review

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

Co-authored-by: Trevor Powell <trevor@vectorstorm.org>
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2021-11-16 05:40:52 +11:00
..
ChangeLog Bootmagic lite docs clarity. (#14204) 2021-08-29 09:47:48 +10:00
de Remove bin/qmk (#14231) 2021-08-29 16:50:22 -07:00
es Purge uGFX. (#14720) 2021-10-07 10:57:48 +11:00
fr-fr Remove `BOOTMAGIC_ENABLE = lite` option (#15002) 2021-11-05 08:18:09 +11:00
gitbook/images RGB improvements (#1684) 2017-09-06 14:49:19 -07:00
he-il Purge uGFX. (#14720) 2021-10-07 10:57:48 +11:00
ja Remove `BOOTMAGIC_ENABLE = lite` option (#15002) 2021-11-05 08:18:09 +11:00
ko-kr [Core] [Docs] Remove travis-ci references (#13916) 2021-08-20 23:31:26 +01:00
pt-br [Core] [Docs] Remove travis-ci references (#13916) 2021-08-20 23:31:26 +01:00
ru-ru Purge uGFX. (#14720) 2021-10-07 10:57:48 +11:00
zh-cn Remove `BOOTMAGIC_ENABLE = lite` option (#15002) 2021-11-05 08:18:09 +11:00
.nojekyll Use docsfy to replace gitbook 2018-05-07 22:46:26 -07:00
CNAME Create CNAME 2018-05-21 16:29:37 -04:00
README.md Small tweaks to docs to make them more user friendly (#11518) 2021-01-20 18:46:01 +00:00
_langs.md Fix hebrew emoji in langs.md (#15140) 2021-11-13 17:18:02 +00:00
_summary.md Add Support for USB programmable buttons (#12950) 2021-09-15 08:40:22 -07:00
adc_driver.md 2021 May 29 Breaking Changes Update (#13034) 2021-05-29 14:38:50 -07:00
api_development_environment.md Add API documentation 2020-03-05 16:00:10 -08:00
api_development_overview.md Add API documentation 2020-03-05 16:00:10 -08:00
api_docs.md [Docs] Use HTTPS for images and links where possible (#11695) 2021-01-30 22:00:56 +11:00
api_overview.md [Docs] Use HTTPS for images and links where possible (#11695) 2021-01-30 22:00:56 +11:00
arm_debugging.md [Docs] fix docs (#7642) 2019-12-21 11:00:22 +00:00
audio_driver.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
breaking_changes.md 2021Q3 pre-merge `develop` changelog, keyboard aliases (#14198) 2021-08-29 08:18:18 +10:00
breaking_changes_history.md 2021Q3 pre-merge `develop` changelog, keyboard aliases (#14198) 2021-08-29 08:18:18 +10:00
breaking_changes_instructions.md 2020 May 30 Breaking Changes Update (#9215) 2020-05-30 13:14:59 -07:00
chibios_upgrade_instructions.md Update to ChibiOS 20.3.4, support builds against trunk (#14208) 2021-11-03 08:26:40 +11:00
cli.md Streamline the macos install process 2020-05-18 22:46:33 -07:00
cli_commands.md Merge remote-tracking branch 'upstream/master' into develop 2021-11-05 08:55:55 +11:00
cli_configuration.md Fix capitalisation of "GitHub" (#9184) 2020-05-25 19:43:14 -07:00
cli_development.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
cli_tab_complete.md Fix Typo in documentation (#14942) 2021-10-24 23:32:42 +01:00
coding_conventions_c.md [Docs] Use HTTPS for images and links where possible (#11695) 2021-01-30 22:00:56 +11:00
coding_conventions_python.md Refactor new-keyboard to be python3.7 compatible (#14707) 2021-11-05 08:14:43 +11:00
compatible_microcontrollers.md [Core] Add support for RISC-V builds and GD32VF103 MCU (#12508) 2021-10-18 16:23:20 +11:00
config_options.md Add support for deferred executors. (#14859) 2021-11-15 18:21:09 +00:00
configurator_architecture.md Architecture documentation for Configurator and API (#13935) 2021-08-10 07:47:53 -07:00
configurator_default_keymaps.md Basic keycode overhaul (#14726) 2021-11-03 22:22:17 -07:00
configurator_diagram.drawio Architecture documentation for Configurator and API (#13935) 2021-08-10 07:47:53 -07:00
configurator_diagram.svg Architecture documentation for Configurator and API (#13935) 2021-08-10 07:47:53 -07:00
configurator_step_by_step.md Fix capitalisation of "GitHub" (#9184) 2020-05-25 19:43:14 -07:00
configurator_troubleshooting.md Polish Configurator section 2020-03-05 16:00:10 -08:00
contributing.md Remove bin/qmk (#14231) 2021-08-29 16:50:22 -07:00
custom_matrix.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
custom_quantum_functions.md Add support for deferred executors. (#14859) 2021-11-15 18:21:09 +00:00
data_driven_config.md Create a system to map between info.json and config.h/rules.mk (#11548) 2021-01-31 12:46:00 -08:00
documentation_best_practices.md [Docs] fix file path (#9540) 2020-06-25 15:58:36 +10:00
documentation_templates.md [Docs] Use HTTPS for images and links where possible (#11695) 2021-01-30 22:00:56 +11:00
driver_installation_zadig.md [Core] Add support for RISC-V builds and GD32VF103 MCU (#12508) 2021-10-18 16:23:20 +11:00
easy_maker.md [Keyboard] ez_maker/directpins for easy one-offs in qmk_configurator (#13321) 2021-08-14 08:42:59 -07:00
eeprom_driver.md eeprom_i2c driver: added EXTERNAL_EEPROM_WP_PIN configuration option. (#12617) 2021-06-21 19:34:28 -07:00
faq_build.md [Docs] Use HTTPS for images and links where possible (#11695) 2021-01-30 22:00:56 +11:00
faq_debug.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
faq_general.md Fix typos and reword some sentences in FAQs (#11546) 2021-01-23 13:41:29 -08:00
faq_keymap.md Basic keycode overhaul (#14726) 2021-11-03 22:22:17 -07:00
faq_misc.md Remove `BOOTMAGIC_ENABLE = lite` option (#15002) 2021-11-05 08:18:09 +11:00
feature_advanced_keycodes.md Additional documentation for GUI mod combo (#13266) 2021-06-22 12:41:57 +10:00
feature_audio.md Fixup Audio startup and add to documents (#13606) 2021-08-15 21:51:50 +01:00
feature_auto_shift.md Basic keycode overhaul (#14726) 2021-11-03 22:22:17 -07:00
feature_backlight.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
feature_bluetooth.md Improve Adafruit BLE configuration defines (#14749) 2021-10-08 16:15:20 +01:00
feature_bootmagic.md Remove `BOOTMAGIC_ENABLE = lite` option (#15002) 2021-11-05 08:18:09 +11:00
feature_combo.md Basic keycode overhaul (#14726) 2021-11-03 22:22:17 -07:00
feature_command.md Remove Full Bootmagic (#13846) 2021-08-06 23:59:56 -07:00
feature_debounce_type.md Remove backwards compatibility of debounce names (#13877) 2021-08-09 19:46:18 +01:00
feature_digitizer.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
feature_dip_switch.md Added right vs left specific pin assignments for dip switch (#13074) 2021-08-19 18:39:15 +01:00
feature_dynamic_macros.md Fix typo in docs/feature_dynamic_macros (#10085) 2020-08-19 22:59:59 +01:00
feature_encoders.md [Docs] Modify encoder_update_user example to return false (#14541) 2021-09-21 07:52:57 -07:00
feature_grave_esc.md Basic keycode overhaul (#14726) 2021-11-03 22:22:17 -07:00
feature_haptic_feedback.md Basic keycode overhaul (#14726) 2021-11-03 22:22:17 -07:00
feature_hd44780.md fixed typo for clear lcd screen function in hd44780 docs (#9086) 2020-05-13 19:06:41 +01:00
feature_joystick.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
feature_key_lock.md Add explicit id tags to externally linked headers 2020-03-05 16:00:10 -08:00
feature_key_overrides.md Basic keycode overhaul (#14726) 2021-11-03 22:22:17 -07:00
feature_layers.md Improve upon the 'Caveats' section of the Layers and Mod-Tap documentation (#12306) 2021-03-25 22:44:28 +11:00
feature_layouts.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
feature_leader_key.md 2021 May 29 Breaking Changes Update (#13034) 2021-05-29 14:38:50 -07:00
feature_led_indicators.md [Docs] add sync options heading, update led indicators (#14441) 2021-09-15 10:11:25 -07:00
feature_led_matrix.md Add support for ISSI drivers on both sides of a split keyboard (#13842) 2021-11-02 09:04:37 +11:00
feature_macros.md Basic keycode overhaul (#14726) 2021-11-03 22:22:17 -07:00
feature_midi.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
feature_mouse_keys.md Add support for 8 buttons to mouse report (#10807) 2021-01-28 04:38:34 +11:00
feature_oled_driver.md Merge remote-tracking branch 'origin/master' into develop 2021-11-02 06:19:36 +00:00
feature_pointing_device.md Rework and expand Pointing Device support (#14343) 2021-11-14 22:03:24 -08:00
feature_programmable_button.md Add Support for USB programmable buttons (#12950) 2021-09-15 08:40:22 -07:00
feature_ps2_mouse.md Align PS/2 GPIO defines (#14745) 2021-10-20 20:07:40 +01:00
feature_rawhid.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
feature_rgb_matrix.md Merge remote-tracking branch 'origin/master' into develop 2021-11-05 08:12:19 +00:00
feature_rgblight.md Retain brightness with lighting layers (#13025) 2021-07-21 23:46:12 -07:00
feature_sequencer.md Ensure single newline at EOF for core files (#11310) 2020-12-28 04:36:32 +11:00
feature_space_cadet.md [Docs] Use HTTPS for images and links where possible (#11695) 2021-01-30 22:00:56 +11:00
feature_split_keyboard.md [Docs] add sync options heading, update led indicators (#14441) 2021-09-15 10:11:25 -07:00
feature_st7565.md ST7565 invert (#13237) 2021-06-19 18:51:35 +10:00
feature_stenography.md Merge remote-tracking branch 'origin/master' into develop 2021-10-19 14:27:43 +00:00
feature_swap_hands.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
feature_tap_dance.md Basic keycode overhaul (#14726) 2021-11-03 22:22:17 -07:00
feature_terminal.md Remove build option firmware size impacts (#6947) 2019-10-18 18:14:49 -07:00
feature_thermal_printer.md Format keycode tables 2017-12-09 10:46:11 -05:00
feature_unicode.md 2021 May 29 Breaking Changes Update (#13034) 2021-05-29 14:38:50 -07:00
feature_userspace.md Enable CLI flashing via mdloader (#14729) 2021-10-15 22:07:33 +01:00
feature_velocikey.md Remove `BOOTMAGIC_ENABLE = lite` option (#15002) 2021-11-05 08:18:09 +11:00
feature_wpm.md Reimplements WPM feature to be smaller & precise (#13902) 2021-11-16 05:40:52 +11:00
flashing.md Change USBasp and bootloadHID bootloaders to lowercase (#14354) 2021-09-10 17:17:54 +10:00
flashing_bootloadhid.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
fuse.txt Ensure single newline at EOF for core files (#11310) 2020-12-28 04:36:32 +11:00
getting_started_docker.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
getting_started_github.md Purge uGFX. (#14720) 2021-10-07 10:57:48 +11:00
getting_started_introduction.md [Docs] update git command and directory name of documents (#7619) 2019-12-12 20:59:00 -08:00
getting_started_make_guide.md Add support for deferred executors. (#14859) 2021-11-15 18:21:09 +00:00
getting_started_vagrant.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
hand_wire.md [Docs] Added information on soldering diodes in parallel (#13117) 2021-07-29 22:56:27 -07:00
hardware_avr.md Port new_keyboard.sh to CLI (#13706) 2021-07-30 21:57:40 +01:00
hardware_drivers.md Purge uGFX. (#14720) 2021-10-07 10:57:48 +11:00
hardware_keyboard_guidelines.md Purge uGFX. (#14720) 2021-10-07 10:57:48 +11:00
how_a_matrix_works.md [Docs] Use HTTPS for images and links where possible (#11695) 2021-01-30 22:00:56 +11:00
how_keyboards_work.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
i2c_driver.md i2c_master: Add support for reading/writing to 16-bit registers (#14289) 2021-10-07 10:29:35 +11:00
index.html Simplify the visual flow of the getting started page (#11316) 2020-12-27 16:56:10 +00:00
internals_defines.md rename api docs to internals 2018-03-26 11:43:37 -07:00
internals_gpio_control.md Update documentation because GPIO functions are no longer in quantum.h (#14826) 2021-10-16 01:43:03 +01:00
internals_input_callback_reg.md rename api docs to internals 2018-03-26 11:43:37 -07:00
internals_midi_device.md rename api docs to internals 2018-03-26 11:43:37 -07:00
internals_midi_device_setup_process.md rename api docs to internals 2018-03-26 11:43:37 -07:00
internals_midi_util.md rename api docs to internals 2018-03-26 11:43:37 -07:00
internals_send_functions.md rename api docs to internals 2018-03-26 11:43:37 -07:00
internals_sysex_tools.md rename api docs to internals 2018-03-26 11:43:37 -07:00
isp_flashing_guide.md Rework ISP flashing guide (#14938) 2021-11-05 14:42:08 +11:00
keycodes.md Basic keycode overhaul (#14726) 2021-11-03 22:22:17 -07:00
keycodes_basic.md Basic keycode overhaul (#14726) 2021-11-03 22:22:17 -07:00
keycodes_magic.md Add a toggle key for GUI On/Off in Magic feature (#13830) 2021-08-18 08:47:50 +10:00
keycodes_us_ansi_shifted.md Backslash-escape pipe character in keycode lists (#7157) 2019-10-26 06:10:03 +01:00
keymap.md Basic keycode overhaul (#14726) 2021-11-03 22:22:17 -07:00
mod_tap.md [Docs] Correct logic of tap hold statement (#14992) 2021-11-12 14:14:28 -08:00
newbs.md [Docs] Use HTTPS for images and links where possible (#11695) 2021-01-30 22:00:56 +11:00
newbs_building_firmware.md Add explicit id tags to externally linked headers 2020-03-05 16:00:10 -08:00
newbs_building_firmware_configurator.md Small tweaks to docs to make them more user friendly (#11518) 2021-01-20 18:46:01 +00:00
newbs_flashing.md A few small typo fixes in docs (#12524) 2021-04-11 12:50:45 +02:00
newbs_getting_started.md [Docs] Add instructions to create keymap before proceeding (#14945) 2021-10-27 08:03:00 -07:00
newbs_git_best_practices.md [Docs] Restructure of Git Best Practices doc (#7231) 2019-12-02 18:47:02 -08:00
newbs_git_resolving_merge_conflicts.md [Docs] Restructure of Git Best Practices doc (#7231) 2019-12-02 18:47:02 -08:00
newbs_git_resynchronize_a_branch.md [Docs] Clean up some code block languages (#14434) 2021-09-14 13:16:24 +01:00
newbs_git_using_your_master_branch.md Add explicit id tags to externally linked headers 2020-03-05 16:00:10 -08:00
newbs_learn_more_resources.md Small tweaks to docs to make them more user friendly (#11518) 2021-01-20 18:46:01 +00:00
newbs_testing_debugging.md Small tweaks to docs to make them more user friendly (#11518) 2021-01-20 18:46:01 +00:00
one_shot_keys.md fix: Fix typo in documentation for one shot keys. ON_TOGG -> OS_TOGG (#13754) 2021-07-28 12:00:55 +01:00
other_eclipse.md eclipse: recommend changing the default project make target (#12447) 2021-04-19 02:20:17 -07:00
other_vscode.md [Core] [Docs] Remove travis-ci references (#13916) 2021-08-20 23:31:26 +01:00
platformdev_chibios_earlyinit.md Ensure single newline at EOF for core files (#11310) 2020-12-28 04:36:32 +11:00
platformdev_selecting_arm_mcu.md Add documentation for selecting an Arm MCU (#9046) 2020-06-10 23:32:58 +01:00
power.txt Trim trailing whitespace 2017-12-09 10:46:11 -05:00
pr_checklist.md [Docs] Codify not using code from other keyboards in PRs (#15128) 2021-11-12 18:33:16 +11:00
proton_c_conversion.md Add board specific to Proton-C, with usual defaults turned on. (#10976) 2020-12-03 13:04:28 +11:00
qmk.css Some more tweaks to make everything look nice 2018-05-07 23:42:41 -07:00
qmk_custom_dark.css Small tweaks to docs to make them more user friendly (#11518) 2021-01-20 18:46:01 +00:00
qmk_custom_light.css Small tweaks to docs to make them more user friendly (#11518) 2021-01-20 18:46:01 +00:00
quantum_keycodes.md Add explicit id tags to externally linked headers 2020-03-05 16:00:10 -08:00
redirects.json Configuration system for CLI (#6708) 2019-09-22 13:25:33 -07:00
ref_functions.md Remove Full Bootmagic (#13846) 2021-08-06 23:59:56 -07:00
reference_configurator_support.md Basic keycode overhaul (#14726) 2021-11-03 22:22:17 -07:00
reference_glossary.md Fix Space Cadet md link (#14300) 2021-09-04 15:01:56 +01:00
reference_info_json.md [Docs] Clean up reference_info_json.md (#14806) 2021-10-15 12:45:33 +11:00
reference_keymap_extras.md Rework keymap_extras docs (#13949) 2021-08-15 00:18:20 +10:00
serial_driver.md Make solo half of split keyboards (more) usable. (#13523) 2021-08-22 10:51:17 +10:00
spi_driver.md Merge remote-tracking branch 'upstream/master' into develop 2021-02-08 07:57:09 +11:00
support.md Fix capitalisation of "GitHub" (#9184) 2020-05-25 19:43:14 -07:00
sw.js Fix up info boxes. 2018-05-07 22:46:26 -07:00
syllabus.md Remove Full Bootmagic (#13846) 2021-08-06 23:59:56 -07:00
tap_hold.md Basic keycode overhaul (#14726) 2021-11-03 22:22:17 -07:00
translating.md Add yet another dictionary for the QMK Firmware docs sidebar heading (#7504) 2019-11-28 22:14:04 +00:00
uart_driver.md Update UART driver API (#14839) 2021-11-13 18:23:14 +00:00
understanding_qmk.md Basic keycode overhaul (#14726) 2021-11-03 22:22:17 -07:00
unit_testing.md Remove SERIAL_LINK feature (#14727) 2021-10-07 12:32:05 +11:00
usb_nkro.txt convert docs to lowercase and underscores 2017-06-10 14:58:55 -04:00
ws2812_driver.md Fix up WS2812 SPI driver on F072. (#13022) 2021-06-03 09:48:16 +10:00

README.md

Quantum Mechanical Keyboard Firmware

What is QMK Firmware?

QMK (Quantum Mechanical Keyboard) is an open source community centered around developing computer input devices. The community encompasses all sorts of input devices, such as keyboards, mice, and MIDI devices. A core group of collaborators maintains QMK Firmware, QMK Configurator, QMK Toolbox, qmk.fm, and this documentation with the help of community members like you.

Get Started

?> Basic QMK Configurator
User friendly graphical interfaces, no programming knowledge required.

?> Advanced Use The Source
More powerful, but harder to use.

Make It Yours

QMK has lots of features to explore, and a good deal of reference documentation to dig through. Most features are taken advantage of by modifying your keymap, and changing the keycodes.

Need help?

Check out the support page to see how you can get help using QMK.

Give Back

There are a lot of ways you can contribute to the QMK Community. The easiest way to get started is to use it and spread the word to your friends.