summaryrefslogtreecommitdiffstats
path: root/quantum/process_keycode
Commit message (Collapse)AuthorAgeFilesLines
...
* Run clang-format manually to fix recently changed fileszvecr2019-11-171-4/+2
|
* [Core] Convert Dynamic Macro to a Core Feature (#5948)Drashna Jaelre2019-11-042-0/+298
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Convert Dynamic Macro to a Core Feature This imports the code from Dynamic Macro into the core code, and handles it, as such. This deprecates the old method but does not remove it, for legacy support. This way, no existing user files need to be touched. Additionally, this reorganizes the documentation to better reflect the changes. Also, it adds user hooks to the feature so users can customize the existing functionality. Based heavily on and closes #2976 * Apply suggestions from code review Co-Authored-By: fauxpark <fauxpark@gmail.com> Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Cleanup based on feedback * Add short-form keycodes and document them - add short-form keycodes to quantum/quantum_keycodes.h - document the new aliases in docs/feature_dynamic_macros.md * Add Dynamic Macros section and keycodes to docs/keycodes.md * Make anti-nesting optional * Add documentation for DYNAMIC_MACRO_NO_NESTING option * Fix Merge artifacts * Fix formatting typo in docs Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com> * Remove DYNAMIC_MACRO_RANGE as it's not needed * Fix includes and layer var type
* Smallish overhaul of Auto-Shift feature (#6067)Drashna Jaelre2019-11-032-95/+34
| | | | | | | | | | | | | * Fix edge case when using One Shot Layer with Auto Shift, and it not triggering the cleanup * Remove junk code (no longer used) * Replace `(un)register_code` calls with `tap_code` where appropriate * Fixed up Switch check to be more readable (less verbose) * Simplified modifier check (if it comes back non-zero, there are mods) * Add additional function calls for autoshift settings * Made all variables static, since there are function calls to get their status * Fixed up documentation * Re-add special characters that were missed * formatting pass
* Fix Tap Dance name for consistency and to match docs (#7136)Drashna Jaelre2019-10-241-1/+1
|
* Generalize Tap Dance Layer functions (#6629)Drashna Jaelre2019-09-212-2/+10
| | | | | | | | | | | | | | * made tapdance dual_role general * updated original dual_role functionality * added toggling layer example * Fix dual role and add alias * Update docs about new layer tap dances * Fix up based on feedback
* clang-format changesskullY2019-08-3030-2227/+2028
|
* Mask off TD() parameter properly (#6143)fauxpark2019-08-081-1/+1
| | | | | | * Mask off TD() parameter properly * More parentheses
* MIDI: Fix basic noteon: send correct velocity (#6476)Zach DeCook2019-08-061-1/+1
|
* Fix Preprocessor check for Leader KeysDrashna Jaelre2019-07-161-3/+1
|
* Allow Combo feature to be enabled/disabled live (#6318)Drashna Jaelre2019-07-162-1/+47
| | | | | | | | | | | | | | * Add ability to enable/disable combos * Update documentation for Combo feature * Change keycodes for appeasement * Simplify combo_toggle function * Update names * Update combo docs to use tables
* Add out of bound check for Leader Key sequence array (#5840)Drashna Jaelre2019-07-151-7/+11
| | | | | | | | | | | | | | * Add out of bound check for Leader Key sequence array * A shot at advanced C stuff for Leader Key optimization * Revert most changes * Change default back * Include string.h if compiling for ARM * Use sizeof instead of a number
* Add user-overridable callback for cancelling UCIS input (#5564)Aapo Saaristo2019-07-151-0/+5
| | | | | | | | | | * Add user-overridable callback for cancelling UCIS input To clean up things from qk_ucis_start_user() for instance. * restore lost newline to quantum/process_keycode/process_ucis.c Co-Authored-By: shinmai <aapo.saaristo@gmail.com>
* Added mod carry over from press to release. (#5866)XScorpion22019-07-061-0/+12
| | | | | Update docs/feature_space_cadet.md Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Adds a configurable initial delay to the audio clicky feature (#4286)Josh2019-05-171-3/+8
| | | | | | * Adding an AUDIO_CLICKY_DELAY_DURATION configurable value to the AUDIO_CLICKY feature. * Tweaking my community keymap to work better with my rev 4 planck.
* Added check for event pressed to clear space cadet (#5839)XScorpion22019-05-111-5/+7
| | | | | | | | | | | | * Added check for pressed to clear space cadet * Found some docs to update * Update docs/quantum_keycodes.md Co-Authored-By: fauxpark <fauxpark@gmail.com> * Changes from PR
* Space Cadet: Reducing unnecessary reported keypresses (#5781)XScorpion22019-05-052-18/+23
| | | | | | | | * Reducing unnecessary reported keypresses and minor docs / variable name changes * Apply suggestions from code review Co-Authored-By: XScorpion2 <rcalt2vt@gmail.com>
* New keycode macro (XP) for shifted character pairs using UNICODEMAP + bug ↵Konstantin Đorđević2019-05-036-35/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fixes and improvements (#4803) * Expose unicode_saved_mods * Add UNICODEMAP shift pair functionality and XS keycode * Add XS to keycode reference documentation * Pick pair index based on both Shift and Caps Lock state * Add XS to Unicode feature docs * Clean up process_unicode* headers * Extract unicode_map index calculation into function * Pick pair index as XOR rather than OR of Shift and Caps states * unicode_input_start() has to be called before the unicode_map index is calculated * Replace unicodemap_input_error() with more generic unicode_input_cancel() * Replace register+tap+unregister with tap_code16(LCTL(LSFT(KC_U))) * UNICODE_OSX_KEY → UNICODE_KEY_OSX, UNICODE_WINC_KEY → UNICODE_KEY_WINC * Make keycode range checks more robust * Fix keycode range checks for different input modes * Add UNICODE_KEY_LNX, update docs * QK_UNICODEMAP_SHIFT → QK_UNICODEMAP_PAIR * XS → XP, update docs * Tweak Unicode docs * Use recently added MOD_MASK_SHIFT and IS_HOST_LED_ON helpers * Update Unicode table in docs/keycodes.md * Update Unicode docs per review comments * Replace references to Mac OS X with macOS in Unicode docs * As of v0.9.0, WinCompose supports all possible code points * Expand descriptions in XP docs * Update keycode table and cycling docs * Further expand cycling docs
* Simple extended space cadet (#5277)XScorpion22019-04-292-0/+167
| | | | | | | | * Simplifying and Extending Space Cadet to work on Ctrl and Alt keys * PR Review feedback * Reverting back to keycodes
* fix combo enabling logic (#5610)Bob2019-04-141-2/+2
|
* Switch process_combo to using global register and timer (#2561)Bob2019-04-082-124/+148
| | | | Since combos keep local state about what keys have been previously pressed, when combos are layered, multiple keypresses will register for any key with multiple combos assigned to it. In order to fix this, I switched process_combo to use a global keycode / keyrecord register and timer. When a keypress is consumed by a combo, it gets stored in the register and the timer is updated; when the next keypress takes too long or a key is pressed that isn't part of any combo, the buffer is emitted and the timer reset. This has a few side effects. For instance, I couldn't _not_ fix combo keys printing out of order while also fixing this bug, so combo keys print in order correctly when a combo fails. since combos no longer have local timers, the logic around when combos time out has changed. now that there is a single timer pressing any combo key (including one in a different combo) will reset the timer for all combos, making combo entry a little more lenient. Since combos no longer have local keycode / keyrecord state, there is an edge case where incomplete combo keys can be consumed. if you have a combo for a+s = tab and a combo for b+n = space, if you press a+b+n, only a space will be emitted. This is because when b+n completes successfully, it drops the register.
* Unicode fix for new wincompose version (#5082)cubimon2019-03-171-0/+3
| | | | | | | | * unicode fix for new wincompose version * move wincompose case to linux * Change unicode input end to enter
* Fix Tx Bolt ghosting second character on key press (#5229)Tobias Schulte2019-02-231-22/+24
| | | | | | | | | * convert tabs to spaces * fix #4578: don't call gemini protocol code when in bolt mode Add missing break; statements in switch. The missing break resulted in a fall through and an additional processing of the gemini code.
* Fix Audio Clicky by adding missing punctuation (#5171)Drashna Jaelre2019-02-181-1/+1
|
* Remove problematic unicode_map stub definition in process_unicodemap.c (#5110)Konstantin Đorđević2019-02-142-3/+2
| | | | | | | | * Remove problematic unicode_map stub definition in process_unicodemap.c * Add unicode_map declaration to process_unicodemap.h * Disable UNICODEMAP on converter boards that don't use it
* Fix ARM Audio issues and its EEPROM persistence (#4936)Drashna Jaelre2019-02-141-12/+14
| | | | | | | | | | | | * Don't click if turning audio off On ARM, playing the click when turning off audio causes the audio get stuck and continually play the tone * Fix Audio EEPROM support for ARM * Update touched files to conform to QMK Coding Conventions * Add better check for ARM EEPROM support
* Fix process_combo which assign -1 to uint16_t (#3697)Drashna Jaelre2019-01-252-9/+10
|\
| * Fix process_combo which assign -1 to uint16_tShihpin Tseng2018-08-202-9/+10
| |
* | Allows Terminal to use ModTap/LayerTap keys (#4586)Mislav Čakarić2019-01-171-0/+6
| | | | | | | | | | | | * fixes #4583 * #4583 - terminal also handles layer tap now
* | Improve consistency in UNICODEMAP code and docs, update ↵Konstantin Đorđević2019-01-073-20/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | docs/understanding_qmk (#4774) * Remove unused UNICODE(n) macro, update docs * Add note about max length of unicode_map to docs * QK_UNICODE_MAP → QK_UNICODEMAP * Refactor process_unicode_map * process_unicode_map → process_unicodemap This is done for consistency: UNICODEMAP is the method (hence UNICODEMAP_ENABLE, process_unicodemap), whereas unicode_map is the mapping table itself. * Update references and ordering in docs/understanding_qmk * Add additional note to docs/understanding_qmk * &unicode_map[index] → unicode_map + index This avoids the issue of the compiler sometimes complaining about the array index being out of range * Update docs/getting_started_make_guide * Update method sections in docs/feature_unicode
* | Register the interrupting keycode in the tap dance state structGiuseppe Rota2018-12-302-0/+3
| |
* | Fix leader processingGiuseppe Rota2018-12-291-2/+0
| |
* | Fix up process_leader to be a bit more optimized (#4662)Drashna Jaelre2018-12-202-21/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix up process_leader to be a bit more optimized * Process dual function keys better * Make leader start a callable function * Fix per key timer call location * Add escape if already leading * Return false for KC_LEAD * Add documentation
* | Overhaul Unicode Common functionality (#4325)Drashna Jaelre2018-12-198-99/+190
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |