summaryrefslogtreecommitdiffstats
path: root/quantum/process_keycode
Commit message (Collapse)AuthorAgeFilesLines
* [Bug] Fix build error when enabling NO_HAPTIC_MOD (#14178)Purdea Andrei2021-08-301-0/+1
| | | | | Without this build would fail, if a keyboard had haptic feedback enabled, TAPPING_TOGGLE was not overridden in a config.h, and if NO_HAPTIC_MOD was defined in config.h.
* Add a toggle key for GUI On/Off in Magic feature (#13830)Drashna Jaelre2021-08-181-0/+3
|
* Steno combinedkeys (#12538)freqmod2021-08-181-0/+15
| | | | | * Add support for steno keys that press adjacent keys simultaniously * Add some docs for steno combined keys
* Rgb matrix/enable modes explicitly (#13758)Drashna Jaelre2021-08-181-3/+3
| | | | | | | | | | | * Change animations to require explicet activation * Add support for legacy config * Make default for now * Add LED Matrix support * change LED Matrix docs
* Fix `combo_disable` (#13988)Pete Sevander2021-08-141-8/+10
| | | | | | - Dump key buffer when combos are disabled. - Recursive calls to `dump_key_buffer` need to start dumping the buffer from index i+1 to avoid possible infinite loops. - Handle combo key releases even though combo processing is disabled.
* Process combos earlier & overlapping combos (#8591)Pete Sevander2021-08-062-108/+476
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Combo processing improvements. Now it is possible to use ModTap and LayerTap keys as part of combos. Overlapping combos also don't trigger all the combos, just exactly the one that you press. New settings: - COMBO_MUST_HOLD_MODS - COMBO_MOD_TERM - COMBO_TERM_PER_COMBO - COMBO_MUST_HOLD_PER_COMBO - COMBO_STRICT_TIMER - COMBO_NO_TIMER * Remove the size flags from combo_t struct boolean members. This in the end actually saves space as the members are accessed so many times. The amount of operations needed to access the bits uses more memory than setting the size saves. * Fix `process_combo_key_release` not called correctly with tap-only combos * Fix not passing a pointer when NO_ACTION_TAPPING is defined. * Docs for `COMBO_ONLY_FROM_LAYER` * Update docs/feature_combo.md Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> * Update quantum/process_keycode/process_combo.c Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> * Add `EXTRA_SHORT_COMBOS` option. Stuff combo's `disabled` and `active` flags into `state`. Possibly can save some space. * Add more examples and clarify things with dict management system. - Simple examples now has a combo that has modifiers included. - The slightly more advanced examples now are actually more advanced instead of just `tap_code16(<modded-keycode>)`. - Added a note that `COMBO_ACTION`s are not needed anymore as you can just use custom keycodes. - Added a note that the `g/keymap_combo.h` macros use the `process_combo_event` function and that it is not usable in one's keymap afterwards. * Update docs/feature_combo.md Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> * Update docs/feature_combo.md Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> * Update docs/feature_combo.md Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> * Update docs/feature_combo.md Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> * Update docs/feature_combo.md Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> * Change "the" combo action example to "email" example. * Update docs/feature_combo.md Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> * Fix sneaky infinite loop with `combo_disable()` No need to call `dump_key_buffer` when disabling combos because the buffer is either being dumped if a combo-key was pressed, or the buffer is empty if a non-combo-key is pressed. * Update docs/feature_combo.md Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> * Update docs/feature_combo.md Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> Co-authored-by: Drashna Jaelre <drashna@live.com>
* [BUG] Fix Key Override includes (#13831)Drashna Jaelre2021-08-011-1/+1
| | | | | * [BUG] Fix Key Override includes * simplify includes
* Minor tidy up of key overrides (#13747)Joel Challis2021-07-283-29/+11
| | | | | | | * Minor tidy up of key overrides * Update quantum/quantum.c * Update quantum/quantum.c
* matrix_scan_x -> x_task (#13748)Joel Challis2021-07-286-6/+6
|
* Haptic: driver-> feature (#13713)Joel Challis2021-07-252-0/+168
|
* [Feature] Key Overrides (#11422)Jonas Gessner2021-07-133-0/+689
|
* Remove rgblight stubs (#13302)Ryan2021-06-231-1/+0
|
* Fix bad PR merge for #6580. (#12721)Nick Brassel2021-04-281-2/+0
|
* Merge remote-tracking branch 'origin/master' into developQMK Bot2021-04-251-0/+4
|\
| * Do not leak weak mods from tap dance to the interrupting keypress (#12471)Sergey Vlasov2021-04-251-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | Tap dance callbacks may register weak mods; one case when it happens is when a tap dance registers a key with modifiers. When the tap dance is interrupted by pressing another key, these weak mods could affect the interrupting key (normally any stale weak mods are cleared at the start of action_exec() when handling a keypress event, but the tap dance interrupt check code is called later, and the weak mods left by that code were not cleared). Add another clear_weak_mods() call to preprocess_tap_dance() to make sure that the interrupting keypress is not affected by unrelated weak mods from the previous tap dance. Fixes #12445.
* | Format code according to conventions (#12680)github-actions[bot]2021-04-251-2/+2
| | | | | | Co-authored-by: QMK Bot <hello@qmk.fm>
* | feat: infinite timeout for leader key (#6580)Daniel Rodríguez Rivero2021-04-252-2/+12
| | | | | | | | | | * feat: implement leader_no_timeout logic * docs(leader_key): infinite leader timeout docs
* | Add Per Key functionality for AutoShift (#11536)Drashna Jaelre2021-04-192-7/+14
| | | | | | Co-authored-by: Ryan <fauxpark@gmail.com>
* | Add missing RGB_MODE_TWINKLE / RGB_M_TW keycodes (#11935)Joshua Diamond2021-04-151-0/+5
| | | | | | | | | | | | | | | | | | * Add missing RGB_MODE_TWINKLE / RGB_M_TW keycodes * Better comment Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: Ryan <fauxpark@gmail.com>
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2021-03-251-1/+1
|\|
| * Fix issues when manually shifting characters and Auto Shift (#12083)Drashna Jaelre2021-03-251-1/+1
| | | | | | Specifically, when using the Auto-Shift feature, if you hold and roll shift, it would not actually shift the character that you hit after the shift
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2021-03-251-10/+13
|\|
| * Fix handling multiples of the same MIDI note (fixes bug brought up in issue ↵jakobkg2021-03-251-10/+13
| | | | | | | | | | | | | | #10199) (#11639) * Fix handling multiples of the same MIDI note * Extend MIDI note status to fix note releases
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2021-03-121-3/+3
|\|
| * Remove hex_to_keycode and move tap_random_base64 to send_string.c (#12079)Ryan2021-03-121-3/+3
| |
* | LED Matrix: decouple from Backlight (#12054)Ryan2021-03-081-2/+27
|/
* Fix wrong key when "Music Map" is used with MAJOR_MODE. (#11234)Takeshi Nishio2021-01-191-1/+1
| | | | | | | With MAJOR_MODE (= major scale), keys in one octave is not 12 but 7. To solve this problem, change divisor number from 12 to 7 at %(Modulo) and /(Division). NOTE: The last 12 represents half step keys in one octave for pitch calculation.
* Fix Tap-Hold Configs (#11127)Drashna Jaelre2021-01-043-9/+10
| | | | | | | | | | | | | | | * Add proper prototypes for Tap-Hold Per Key functions * Fix handwired/tennie default keymap * Remove unneeded references * Fix tapping term per key check in space cadet * Pre-emptive fix for tap dance * Fix marksard/leftover30 * Replace hard coded tapping term with define
* Change include guards in quantum/ to pragma once (#11239)Ryan2020-12-2612-48/+14
|
* Partial fix for Issue #9405 - Caps Lock not working with Unicode Map's XP on ↵Joshua Diamond2020-12-231-0/+19
| | | | Linux (#11232)
* Fix Issue #9533 - Delayed shift state handling (#11220)Joshua Diamond2020-12-222-3/+7
| | | Co-authored-by: Ryan <fauxpark@gmail.com>
* Normalise include statements in core code (#11153)Ryan2020-12-111-2/+2
| | | | | * Normalise include statements in core code * Missed one
* 2020 November 28 Breaking Changes Update (#11053)James Young2020-11-287-62/+256
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Branch point for 2020 November 28 Breaking Change * Remove matrix_col_t to allow MATRIX_ROWS > 32 (#10183) * Add support for soft serial to ATmega32U2 (#10204) * Change MIDI velocity implementation to allow direct control of velocity value (#9940) * Add ability to build a subset of all keyboards based on platform. * Actually use eeprom_driver_init(). * Make bootloader_jump weak for ChibiOS. (#10417) * Joystick 16-bit support (#10439) * Per-encoder resolutions (#10259) * Share button state from mousekey to pointing_device (#10179) * Add hotfix for chibios keyboards not wake (#10088) * Add advanced/efficient RGB Matrix Indicators (#8564) * Naming change. * Support for STM32 GPIOF,G,H,I,J,K (#10206) * Add milc as a dependency and remove the installed milc (#10563) * ChibiOS upgrade: early init conversions (#10214) * ChibiOS upgrade: configuration file migrator (#9952) * Haptic and solenoid cleanup (#9700) * XD75 cleanup (#10524) * OLED display update interval support (#10388) * Add definition based on currently-selected serial driver. (#10716) * New feature: Retro Tapping per key (#10622) * Allow for modification of output RGB values when using rgblight/rgb_matrix. (#10638) * Add housekeeping task callbacks so that keyboards/keymaps are capable of executing code for each main loop iteration. (#10530) * Rescale both ChibiOS and AVR backlighting. * Reduce Helix keyboard build variation (#8669) * Minor change to behavior allowing display updates to continue between task ticks (#10750) * Some GPIO manipulations in matrix.c change to atomic. (#10491) * qmk cformat (#10767) * [Keyboard] Update the Speedo firmware for v3.0 (#10657) * Maartenwut/Maarten namechange to evyd13/Evy (#10274) * [quantum] combine repeated lines of code (#10837) * Add step sequencer feature (#9703) * aeboards/ext65 refactor (#10820) * Refactor xelus/dawn60 for Rev2 later (#10584) * add DEBUG_MATRIX_SCAN_RATE_ENABLE to common_features.mk (#10824) * [Core] Added `add_oneshot_mods` & `del_oneshot_mods` (#10549) * update chibios os usb for the otg driver (#8893) * Remove HD44780 References, Part 4 (#10735) * [Keyboard] Add Valor FRL TKL (+refactor) (#10512) * Fix cursor position bug in oled_write_raw functions (#10800) * Fixup version.h writing when using SKIP_VERSION=yes (#10972) * Allow for certain code in the codebase assuming length of string. (#10974) * Add AT90USB support for serial.c (#10706) * Auto shift: support repeats and early registration (#9826) * Rename ledmatrix.h to match .c file (#7949) * Split RGB_MATRIX_ENABLE into _ENABLE and _DRIVER (#10231) * Split LED_MATRIX_ENABLE into _ENABLE and _DRIVER (#10840) * Merge point for 2020 Nov 28 Breaking Change
* Allow modified keycodes in Unicode input (#10658)Ryan2020-10-271-13/+3
|
* Fix issue introduced by PR#10404 (#10559)a_p_u_r_o2020-10-071-2/+2
|
* Fix for MIDI sustain effect issue (#10361)3araht2020-10-041-4/+6
|
* format code according to conventions [skip ci]QMK Bot2020-10-041-7/+7
|
* Fix issues with unused variables and functions preventing a clean compile.cmdremily2020-09-231-0/+4
|
* format code according to conventions [skip ci]QMK Bot2020-08-293-44/+37
|
* #define AUTO_SHIFT_SETUP (#8441)Greg Wright2020-08-291-33/+37
| | | | | | | | | * #define AUTO_SHIFT_SETUP * Clarification Changed `#ifndef` to `#ifdef` and moved enable disable outside AUTO_SHIFT_SETUP * AUTO_SHIFT_NO_SETUp
* Hid joystick interface (#4226)a-chol2020-08-292-0/+179
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * add support for hid gamepad interface add documentation for HID joystick Add joystick_task to read analog axes values even when no key is pressed or release. update doc Update docs/feature_joystick.md Manage pin setup and read to maintain matrix scan after analog read * Incorporates patches and changes to HID reporting There are some patches provided by @a-chol incorporated on this commit, and also some changes I made to the HID Report structure. The most interesting is the one dealing with number of buttons: Linux doesn't seem to care, but Windows requires the HID structure to be byte aligned (that's in the spec). So if one declares 8/16/32... buttons they should not have any issues, but this is what happens when you have 9 buttons: ``` bits |0|1|2|3|4|5|6|7| |*|*|*|*|*|*|*|*| axis 0 (report size 8) |*|*|*|*|*|*|*|*| ... |*|*|*|*|*|*|*|*| |*|*|*|*|*|*|*|*| |*|*|*|*|*|*|*|*| |*|*|*|*|*|*|*|*| |*|*|*|*|*|*|*|*| axis 6 |*|*|*|*|*|*|*|*| first 8 buttons (report size 1) |*| | | | | | | | last of 9 buttons, not aligned ``` So for that I added a conditonal that will add a number of reports with size 1 to make sure it aligns to the next multiple of 8. Those reports send dummy inputs that don't do anything aside from aligning the data. Tested on Linux, Windows 10 and Street Fighter (where the joystick is recognized as direct-input) * Add save and restore of each pin used in reading joystick (AVR). Allow output pin to be JS_VIRTUAL_AXIS if the axis is connected to Vcc instead of an output pin from the MCU. Fix joystick report id Fix broken v-usb hid joystick interface. Make it more resilient to unusual settings (none multiple of eight button count, 0 buttons or 0 axes) Correct adc reading for multiple axes. Piecewise range conversion for uncentered raw value range. Input, output and ground pin configuration per axis. Documentation fixes * Fix port addressing for joystick analog read * The other required set of changes As per the PR, the changes still holding it up. Add onekey for testing. Fix ARM builds. Fix device descriptor when either axes or buttons is zero. Add compile-time check for at least one axis or button. Move definition to try to fix conflict. PR review comments. qmk cformat * avoid float functions to compute range mapping for axis adc reading * Remove V-USB support for now. Updated docs accordingly. * Update tmk_core/protocol/lufa/lufa.c Co-Authored-By: Ryan <fauxpark@gmail.com> * Update tmk_core/protocol/usb_descriptor.c Co-Authored-By: Ryan <fauxpark@gmail.com> * Update tmk_core/protocol/usb_descriptor.c Co-Authored-By: Ryan <fauxpark@gmail.com> * Update tmk_core/protocol/usb_descriptor.c Co-Authored-By: Ryan <fauxpark@gmail.com> * Add support for joystick adc reading for stm32 MCUs. Fix joystick hid report sending for chibios * Fix HID joystick report sending for ChibiOS. Add one analog axis to the onekey:joystick keymap. Fix pin state save and restore during joystick analog read for STM32 MCUs. * Update tmk_core/protocol/chibios/usb_main.c Co-Authored-By: Ryan <fauxpark@gmail.com> * Update tmk_core/protocol/lufa/lufa.c Co-Authored-By: Ryan <fauxpark@gmail.com> * Add missing mcuconf.h and halconf.h to onekey:joystick keymap. Add suggested fixes from PR. * Switch saveState and restoreState signature to use pin_t type. onekey:joystick : add a second axis, virtual and programmatically animated. * Update docs/feature_joystick.md Co-Authored-By: Ryan <fauxpark@gmail.com> * Update docs/feature_joystick.md Co-Authored-By: Ryan <fauxpark@gmail.com> * Add PR corrections * Remove halconf.h and mcuconf.h from onekey keymaps * Change ADC_PIN to A0 Co-authored-by: achol <allecooll@hotmail.com> Co-authored-by: José Júnior <jose.junior@gmail.com> Co-authored-by: a-chol <achol@notamail.com> Co-authored-by: Nick Brassel <nick@tzarc.org> Co-authored-by: Ryan <fauxpark@gmail.com>
* Update features to use Custom Tapping Term when appropriate (#6259)Drashna Jaelre2020-08-293-17/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Update Space Cadet to use Custom Tapping Term functionality * Detect correct keycode for space cadet tapping term * Update tap dancing to use global custom tapping term * Update documentation for Tap Dances * formatting pass * Apply suggestions from code review Co-Authored-By: fauxpark <fauxpark@gmail.com> * Update docs/feature_tap_dance.md Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update for future * Update user keymaps for space cadet * Fix typos * Clean up tapping term stuff * Fix compiler issue if NO_ACTION_TAPPING is enabled Co-authored-by: fauxpark <fauxpark@gmail.com> Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Bigger combo index (#9318)Pete Sevander2020-08-292-4/+4
| | | | | * Add change log * Change combo index from uint8_t to uint16_t
* format code according to conventions [skip ci]QMK Bot2020-07-071-2/+2
|
* Allowing Pressing the Start Buttons Again to Stop Dynamic Macro Recording ↵Dongfeng Yu2020-07-071-3/+5
| | | | (#9446)
* Improve keycode handling for RGB (#7677)Drashna Jaelre2020-06-221-8/+77
| | | | Co-authored-by: drashna <drashna@live.com> Co-authored-by: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* `qmk cformat` (#9500)Nick Brassel2020-06-223-42/+41
|
* Standardize how unicode is processed (fixes #8768) (#8770)Jason Laqua2020-06-185-90/+81
| | | Co-authored-by: Konstantin Đorđević <vomindoraan@gmail.com>
* Fix bug in UC_RMOD, add shift and audio support for UC_MOD/UC_RMOD(#8674)Konstantin Đorđević2020-05-094-51/+74
| | | | | | | | | | | | | | | * Invert UC_MOD/UC_RMOD direction when Shift is held Also use MOD_MASK_SHIFT in process_rgb.c * Allow audio to be played for UC_MOD, UC_RMOD keycodes as well * Fix signedness bug in reverse input mode cycling * Misc formatting in process_unicode_common.c * Address clang-format issues * Make decode_utf8 helper function file-local (static)
* Rename UC_OSX (and related constants) to UC_MAC (#8589)Konstantin Đorđević2020-03-313-15/+24
| | | | | | | | | | | |