c1c5922aae
* Draft commit of typing speed RGB control * More information in the readme * Support all RGB animation modes (Fixes #1) * Added support for all RGB light modes to use typing speed Except christmas lights because that is seizure-inducing at high speeds! * Introduced a value range specific to each RGB mode Because some modes are a little too much when running at full speed! * Update readme.md * Update readme.md * Re-arrange typing_speed definitions (Fixes #5) (#6) * Re-arrange variable definitions to avoid including quantum.h from rgblight.c * Fix a compilation error when trying to run make test:all * Tweaks to the typing speed decay rate * Renamed to momentum; moved implementation into dedicated files * Groundwork for toggling momentum on/off (currently always on) * Add EEPROM toggle for momentum-matching * Moved momentum out of RGBLIGHT_ENABLE toggles so it's more generic * Move momentum decay task out of rgblight_task() * Fix missing momentum.h in lufa.c * Experimental LED support (untested) * Draft commit of typing speed RGB control * More information in the readme * Support all RGB animation modes (Fixes #1) * Added support for all RGB light modes to use typing speed Except christmas lights because that is seizure-inducing at high speeds! * Introduced a value range specific to each RGB mode Because some modes are a little too much when running at full speed! * Update readme.md * Update readme.md * Re-arrange typing_speed definitions (Fixes #5) (#6) * Re-arrange variable definitions to avoid including quantum.h from rgblight.c * Fix a compilation error when trying to run make test:all * Tweaks to the typing speed decay rate * Renamed to momentum; moved implementation into dedicated files * Groundwork for toggling momentum on/off (currently always on) * Add EEPROM toggle for momentum-matching * Moved momentum out of RGBLIGHT_ENABLE toggles so it's more generic * Move momentum decay task out of rgblight_task() * Fix missing momentum.h in lufa.c * Added documentation * Renamed feature to velocikey * Reverted readme to original state * Correct the readme title * Updated feature name in the docs * Update EECONFIG name * Add compile-time toggles for velocikey * Update feature documentation * Revert "Merge branch 'led-support' into master" This reverts commit e123ff5febf61639b9a9020748e1c2e2313460ff, reversing changes made to df111a55b9d4929182e16108b1c0ead15b16df97. * Move velocikey EECONFIG definition to depend on VELOCIKEY_ENABLE * Rename decay_task function to decelerate * Apply suggestions from code review Co-Authored-By: chrislewisdev <chris@chrislewisdev.com> * Re-order eeconfig definitions * Apply coding conventions * Apply #ifdef check in lufa.c * Refactored interval time checks into one functionc * Small rename * Fix unused function error for layouts not using all rgb effects * Only update EEPROM if Velocikey is enabled * Incorporate code review feedback * Small adjustment to top-end decay rate * Add Velocikey documentation to table of contents * Bring tetris:default keymap size down by disabling audio |
||
---|---|---|
.. | ||
gitbook/images | ||
zh | ||
.nojekyll | ||
_summary.md | ||
arm_debugging.md | ||
becoming_a_qmk_collaborator.md | ||
CNAME | ||
compatible_microcontrollers.md | ||
config_options.md | ||
contributing.md | ||
custom_quantum_functions.md | ||
documentation_best_practices.md | ||
documentation_templates.md | ||
eclipse.md | ||
faq.md | ||
faq_build.md | ||
faq_debug.md | ||
faq_general.md | ||
faq_keymap.md | ||
feature_advanced_keycodes.md | ||
feature_audio.md | ||
feature_auto_shift.md | ||
feature_backlight.md | ||
feature_bluetooth.md | ||
feature_bootmagic.md | ||
feature_combo.md | ||
feature_command.md | ||
feature_debounce_type.md | ||
feature_dynamic_macros.md | ||
feature_encoders.md | ||
feature_grave_esc.md | ||
feature_haptic_feedback.md | ||
feature_hd44780.md | ||
feature_key_lock.md | ||
feature_layouts.md | ||
feature_leader_key.md | ||
feature_led_matrix.md | ||
feature_macros.md | ||
feature_mouse_keys.md | ||
feature_pointing_device.md | ||
feature_ps2_mouse.md | ||
feature_rgb_matrix.md | ||
feature_rgblight.md | ||
feature_space_cadet_shift.md | ||
feature_space_cadet_shift_enter.md | ||
feature_stenography.md | ||
feature_swap_hands.md | ||
feature_tap_dance.md | ||
feature_terminal.md | ||
feature_thermal_printer.md | ||
feature_unicode.md | ||
feature_userspace.md | ||
feature_velocikey.md | ||
features.md | ||
flashing.md | ||
fuse.txt | ||
getting_started_build_tools.md | ||
getting_started_getting_help.md | ||
getting_started_github.md | ||
getting_started_introduction.md | ||
getting_started_make_guide.md | ||
getting_started_vagrant.md | ||
hand_wire.md | ||
hardware.md | ||
hardware_avr.md | ||
hardware_drivers.md | ||
hardware_keyboard_guidelines.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 | ||
LANGS.md | ||
newbs.md | ||
newbs_best_practices.md | ||
newbs_building_firmware.md | ||
newbs_building_firmware_configurator.md | ||
newbs_flashing.md | ||
newbs_getting_started.md | ||
newbs_learn_more_resources.md | ||
newbs_testing_debugging.md | ||
porting_your_keyboard_to_qmk_(arm_and_other_chibios_cpus).md | ||
power.txt | ||
proton_c_conversion.md | ||
qmk.css | ||
quantum_keycodes.md | ||
README.md | ||
redirects.json | ||
ref_functions.md | ||
reference_configurator_support.md | ||
reference_glossary.md | ||
reference_info_json.md | ||
sidebar.css | ||
support.md | ||
sw.js | ||
understanding_qmk.md | ||
unit_testing.md | ||
usb_nkro.txt |
Quantum Mechanical Keyboard Firmware
What is QMK Firmware?
QMK (Quantum Mechanical Keyboard) is an open source community that maintains QMK Firmware, QMK Toolbox, qmk.fm, and these docs. QMK Firmware is a keyboard firmware based on the tmk_keyboard with some useful features for Atmel AVR controllers, and more specifically, the OLKB product line, the ErgoDox EZ keyboard, and the Clueboard product line. It has also been ported to ARM chips using ChibiOS. You can use it to power your own hand-wired or custom keyboard PCB.
How to Get It
If you plan on contributing a keymap, keyboard, or features to QMK, the easiest thing to do is fork the repo through Github, and clone your repo locally to make your changes, push them, then open a Pull Request from your fork.
Otherwise, you can either download it directly (zip, tar), or clone it via git (git@github.com:qmk/qmk_firmware.git
), or https (https://github.com/qmk/qmk_firmware.git
).
How to Compile
Before you are able to compile, you'll need to install an environment for AVR or/and ARM development. Once that is complete, you'll use the make
command to build a keyboard and keymap with the following notation:
make planck/rev4:default
This would build the rev4
revision of the planck
with the default
keymap. Not all keyboards have revisions (also called subprojects or folders), in which case, it can be omitted:
make preonic:default
How to Customize
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.