qmk_firmware/docs
Sergey Vlasov 610035dce8
Add HOLD_ON_OTHER_KEY_PRESS option for dual-role keys (#9404)
* Add HOLD_ON_OTHER_KEY_PRESS option for dual-role keys

Implement an additional option for dual-role keys which converts the
dual-role key press into a hold action immediately when another key is
pressed (this is different from the existing PERMISSIVE_HOLD option,
which selects the hold action when another key is tapped (pressed and
then released) while the dual-role key is pressed).  The Mod-Tap keys
already behave in a similar way, unless the IGNORE_MOD_TAP_INTERRUPT
option is enabled (but with some additional delays); the added option
makes this behavior available for all other kinds of dual-role keys.

* [Docs] Update tap-hold docs for HOLD_ON_OTHER_KEY_PRESS

Document the newly added HOLD_ON_OTHER_KEY_PRESS option and update the
documentation for closely related options (PERMISSIVE_HOLD and
IGNORE_MOD_TAP_INTERRUPT).

Use Layer Tap instead of Mod Tap in examples for PERMISSIVE_HOLD and
HOLD_ON_OTHER_KEY_PRESS, because the effect of using these options with
Mod Tap keys is mostly invisible without IGNORE_MOD_TAP_INTERRUPT.

Add comments before return statements in sample implementations of
`get_ignore_mod_tap_interrupt()`, `get_hold_on_other_key_press()` and
`get_permissive_hold()`.

Thanks to @Erovia and @precondition for comments and suggestions to
improve the documentation.
2021-08-07 09:16:26 +10:00
..
ChangeLog
de CLI/Docs: Fix the format commands' name (#13668) 2021-07-23 21:41:33 +01:00
es Port new_keyboard.sh to CLI (#13706) 2021-07-30 21:57:40 +01:00
fr-fr CLI/Docs: Fix the format commands' name (#13668) 2021-07-23 21:41:33 +01:00
gitbook/images
he-il [Docs] Use HTTPS for images and links where possible (#11695) 2021-01-30 22:00:56 +11:00
ja __flash? (#13799) 2021-07-31 14:35:30 +01:00
ko-kr
pt-br
ru-ru
zh-cn [Bug] Develop - Change uint32_t to layer_state_t (#13596) 2021-07-19 09:50:55 -07:00
.nojekyll
CNAME
README.md
_langs.md
_summary.md [Feature] Key Overrides (#11422) 2021-07-13 10:13:51 -07:00
adc_driver.md
api_development_environment.md
api_development_overview.md
api_docs.md
api_overview.md
arm_debugging.md
audio_driver.md
breaking_changes.md
breaking_changes_history.md
breaking_changes_instructions.md
chibios_upgrade_instructions.md
cli.md
cli_commands.md Port new_keyboard.sh to CLI (#13706) 2021-07-30 21:57:40 +01:00
cli_configuration.md
cli_development.md CLI/Docs: Fix the format commands' name (#13668) 2021-07-23 21:41:33 +01:00
cli_tab_complete.md
coding_conventions_c.md
coding_conventions_python.md
compatible_microcontrollers.md
config_options.md Process combos earlier & overlapping combos (#8591) 2021-08-06 09:44:57 +10:00
configurator_default_keymaps.md
configurator_step_by_step.md
configurator_troubleshooting.md
contributing.md
custom_matrix.md
custom_quantum_functions.md
data_driven_config.md
documentation_best_practices.md
documentation_templates.md
driver_installation_zadig.md Update LUFA (18-07-2021) and add QMK-HID Bootloader support (#13588) 2021-07-24 23:00:57 -07:00
eeprom_driver.md
faq_build.md
faq_debug.md Allow output of logging when running unit tests (#13556) 2021-07-25 17:18:09 +01:00
faq_general.md
faq_keymap.md
faq_misc.md
feature_advanced_keycodes.md
feature_audio.md
feature_auto_shift.md
feature_backlight.md
feature_bluetooth.md
feature_bootmagic.md [Docs] Remove extra word it bootmagic page (#13855) 2021-08-02 18:01:38 -07:00
feature_combo.md Process combos earlier & overlapping combos (#8591) 2021-08-06 09:44:57 +10:00
feature_command.md
feature_debounce_type.md
feature_dip_switch.md [Docs] Fix typo in dip switch example (#13688) 2021-07-24 10:44:31 -07:00
feature_dynamic_macros.md
feature_encoders.md
feature_grave_esc.md
feature_haptic_feedback.md
feature_hd44780.md
feature_joystick.md
feature_key_lock.md
feature_key_overrides.md [Feature] Key Overrides (#11422) 2021-07-13 10:13:51 -07:00
feature_layers.md
feature_layouts.md
feature_leader_key.md
feature_led_indicators.md [Docs] Added note about no split support (#12512) 2021-07-20 10:11:49 -07:00
feature_led_matrix.md __flash? (#13799) 2021-07-31 14:35:30 +01:00
feature_macros.md
feature_midi.md
feature_mouse_keys.md
feature_oled_driver.md
feature_pointing_device.md
feature_ps2_mouse.md [Feature] Swap buttons on PS2 Mouse/Trackball (#9205) 2021-08-06 09:09:58 +10:00
feature_rawhid.md
feature_rgb_matrix.md __flash? (#13799) 2021-07-31 14:35:30 +01:00
feature_rgblight.md Retain brightness with lighting layers (#13025) 2021-07-21 23:46:12 -07:00
feature_sequencer.md
feature_space_cadet.md
feature_split_keyboard.md
feature_st7565.md
feature_stenography.md
feature_swap_hands.md
feature_tap_dance.md matrix_scan_x -> x_task (#13748) 2021-07-28 12:01:23 +01:00
feature_terminal.md
feature_thermal_printer.md
feature_unicode.md
feature_userspace.md
feature_velocikey.md
feature_wpm.md
flashing.md Update LUFA (18-07-2021) and add QMK-HID Bootloader support (#13588) 2021-07-24 23:00:57 -07:00
flashing_bootloadhid.md
fuse.txt
getting_started_docker.md
getting_started_github.md
getting_started_introduction.md
getting_started_make_guide.md
getting_started_vagrant.md
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
hardware_keyboard_guidelines.md
how_a_matrix_works.md
how_keyboards_work.md
i2c_driver.md
index.html
internals_defines.md
internals_gpio_control.md
internals_input_callback_reg.md
internals_midi_device.md
internals_midi_device_setup_process.md
internals_midi_util.md
internals_send_functions.md
internals_sysex_tools.md
isp_flashing_guide.md
keycodes.md
keycodes_basic.md
keycodes_us_ansi_shifted.md
keymap.md
mod_tap.md
newbs.md
newbs_building_firmware.md
newbs_building_firmware_configurator.md
newbs_flashing.md
newbs_getting_started.md
newbs_git_best_practices.md
newbs_git_resolving_merge_conflicts.md
newbs_git_resynchronize_a_branch.md
newbs_git_using_your_master_branch.md
newbs_learn_more_resources.md
newbs_testing_debugging.md
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
other_vscode.md Updated settings.json file to fit VSC's docs (#13829) 2021-08-04 01:22:40 +01:00
platformdev_chibios_earlyinit.md
platformdev_selecting_arm_mcu.md
power.txt
pr_checklist.md Explicitly state that VIA should not be enabled in the default keymap. (#13803) 2021-07-31 09:21:45 +10:00
proton_c_conversion.md
qmk.css
qmk_custom_dark.css
qmk_custom_light.css
quantum_keycodes.md
redirects.json
ref_functions.md
reference_configurator_support.md Remove references to info.json `width` and `height` in CLI (#13728) 2021-07-29 22:37:18 -07:00
reference_glossary.md
reference_info_json.md Remove references to info.json `width` and `height` in CLI (#13728) 2021-07-29 22:37:18 -07:00
reference_keymap_extras.md
serial_driver.md
spi_driver.md
support.md
sw.js
syllabus.md [Feature] Key Overrides (#11422) 2021-07-13 10:13:51 -07:00
tap_hold.md Add HOLD_ON_OTHER_KEY_PRESS option for dual-role keys (#9404) 2021-08-07 09:16:26 +10:00
translating.md
uart_driver.md
understanding_qmk.md [Feature] Key Overrides (#11422) 2021-07-13 10:13:51 -07:00
unit_testing.md Allow output of logging when running unit tests (#13556) 2021-07-25 17:18:09 +01:00
usb_nkro.txt
ws2812_driver.md

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.