summaryrefslogtreecommitdiffstats
path: root/tmk_core/common/action.c
Commit message (Collapse)AuthorAgeFilesLines
* Fixes #4072, #6214. Revision of #156 to clear before AS/TD. (#9941)Isaac Elenbaas2021-02-281-5/+5
|
* tmk_core/common/action.c: refactor for code size; merge multiple `case`s ↵Liyang HU2021-02-201-64/+12
| | | | | | | | | | | into one (#11943) * tmk_core/common/report.h: define `enum mouse_buttons` in terms of `#define MOUSE_BTN_MASK()` * tmk_core/common/action.c: collapse multiple `case KC_MS_BTN[1-8]:` into single `MOUSE_BTN_MASK(action.key.code - KC_MS_BTN1)` We all love tapping on our keyboards but this is taking the piss. This saves ~134 bytes on my ATmega32.
* Format code according to conventions (#11936)github-actions[bot]2021-02-171-3/+1
| | | Co-authored-by: QMK Bot <hello@qmk.fm>
* Fix compilation error for `tap_code_delay()` (#11938)Ryan2021-02-171-1/+3
|
* Add `tap_code_delay(code, delay)` (#11913)Ryan2021-02-171-8/+13
| | | Co-authored-by: Drashna Jaelre <drashna@live.com>
* Remove FAUXCLICKY feature (deprecated) (#11829)Drashna Jaelre2021-02-091-14/+0
|
* [Bug] Fix media key missing upstroke event (#11162)Alexander Ulitin2021-02-071-4/+4
| | | | [Bug] Pressing media key on a momentarily activated layer may leads to missing key up events.
* Add support for 8 buttons to mouse report (#10807)Drashna Jaelre2021-01-281-0/+18
| | | | | | | | | | | | | | | | | | | | | * Add support for 8 buttons to mouse report This includes support for 8 buttons in mousekeys. However, this does move the keys around due to the fact that the last mousekey keycode is already 0xFF, so any past that would not work with register_code and the like, breaking them for tap hold keys, encoders, and other features. * Update mouse key docs * Add changes based on feedback * Fix VUSB report size comment Because drashna red gud * Fix typo in action.c * Fix IS_MOUSE_BUTTON check * Change start range for mousekeys so that the end is 0xFF properly * condense mousekeys check
* Normalise include statements in core code (#11153)Ryan2020-12-111-1/+1
| | | | | * Normalise include statements in core code * Missed one
* 2020 November 28 Breaking Changes Update (#11053)James Young2020-11-281-13/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* Add TAP_CODE_DELAY to Mod-Tap (#9422)Sven Grunewaldt2020-07-071-0/+2
|
* Fix sharing of mouse button state from mousekeys to ps2_mouse (#9124)Manna Harbour2020-07-021-4/+8
| | | | | | | | | | | With this change, when ps2_mouse is disabled, mousekeys works as usual. With ps2_mouse enabled, mousekeys button state is shared with ps2_mouse for clicking, dragging, and scrolling, mousekeys clicks are produced by ps2_mouse only, and mouskeys button state is transferred to mousekeys without generating clicks to enable mousekeys dragging. Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: Drashna Jaelre <drashna@live.com>
* Fix for One Shot Layer not being cleaned up after some actions (#8832)Joshua Diamond2020-06-181-2/+9
|
* Fix one shot swaphands compiler error when NO_ACTION_ONESHOT is defined (#9296)Tsan-Kuang Lee2020-06-101-0/+4
| | | | | | | | | | | | | | | | | | | * init * add RETRO_TAP; tap anyway after TAP_TERM, if no interruption * RETRO_TAP works for other types of taps * revert to upstream/master * explain this fork in readme * use one readme.md file instaed * fix the error if NO_ACTION_ONESHOT is defined * restore readme.md to upstream master Co-authored-by: Tsan-Kuang Lee <tsan.kuang.lee@gmail.com>
* Fix build when using IGNORE_MOD_TAP_INTERRUPT_PER_KEY. (#9258)Nick Brassel2020-06-011-1/+1
|
* 2020 May 30 Breaking Changes Update (#9215)James Young2020-05-301-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Branch point for 2020 May 30 Breaking Change * Migrate `ACTION_LAYER_TOGGLE` to `TG()` (#8954) * Migrate `ACTION_MODS_ONESHOT` to `OSM()` (#8957) * Migrate `ACTION_DEFAULT_LAYER_SET` to `DF()` (#8958) * Migrate `ACTION_LAYER_MODS` to `LM()` (#8959) * Migrate `ACTION_MODS_TAP_KEY` to `MT()` (#8968) * Convert V-USB usbdrv to a submodule (#8321) * Unify Tap Hold functions and documentation (#8348) * Changing board names to prevent confusion (#8412) * Move the Keyboardio Model01 to a keyboardio/ subdir (#8499) * Move spaceman keyboards (#8830) * Migrate miscellaneous `fn_actions` entries (#8977) * Migrate `ACTION_MODS_KEY` to chained mod keycodes (#8979) * Organizing my keyboards (plaid, tartan, ergoinu) (#8537) * Refactor Lily58 to use split_common (#6260) * Refactor zinc to use split_common (#7114) * Add a message if bin/qmk doesn't work (#9000) * Fix conflicting types for 'tfp_printf' (#8269) * Fixed RGB_DISABLE_AFTER_TIMEOUT to be seconds based & small internals cleanup (#6480) * Refactor and updates to TKC1800 code (#8472) * Switch to qmk forks for everything (#9019) * audio refactor: replace deprecated PLAY_NOTE_ARRAY (#8484) * Audio enable corrections (2/3) (#8903) * Split HHKB to ANSI and JP layouts and Add VIA support for each (#8582) * Audio enable corrections (Part 4) (#8974) * Fix typo from PR7114 (#9171) * Augment future branch Changelogs (#8978) * Revert "Branch point for 2020 May 30 Breaking Change"
* One shot support for swap hands (#8590)Zsolt Parragi2020-05-141-1/+26
| | | | | | | | | | | | | | | | This commits add the SH_OS keycode, which works similarly to one shot layers: * while pressed, the keyboard is swapped * if no keys were pressed while it was pressed, the next key press is swapped SH_OS also supports chaining with one shot layers: OSL(x) + SH_OS + key interprets the key press on the oneshot layer. The ONESHOT_TIMEOUT setting used by one shot keys and layers is also used by oneshot swap hands. In the above chaining scenario the timeout of the oneshot layer is reset when swap hands is activated. Resolves #2682
* [Docs] Fixed minor typos (#8860)Chris Ko2020-04-191-1/+1
|
* Fix bug with layer caching in get_event_keycode (#8693)Drashna Jaelre2020-04-121-1/+1
| | | | | * Fix bug with layer caching in get_event_keycode * Improve naming
* Strip out features to allow minimum firmware sizes (#8645)Joel Challis2020-04-011-1/+2
|
* Add Post Processing to process_record (#4892)Drashna Jaelre2020-03-231-1/+7
| | | | | | | | | | | | | | | | | | | * Improve process_record system Code based on @colinta's * Rename and better handle functions * Fix incorrect function call to process_record_user * Add documentation for post_process_record * Add both get_event_keycode and get_record_keycode functions And add some comments about these functions * Update code format * Cleanup merge artifacts
* Remove ACT_COMMAND (#8487)Ryan2020-03-211-5/+0
| | | | | * Remove ACT_COMMAND * And from action_t as well
* format code according to conventions [skip ci]QMK Bot2020-03-131-2/+2
|
* Fix pressing two keys with the same keycode but different modifiers (#2710)fredizzimo2020-03-131-0/+7
| | | | | | | | | | | | | | | | | | * Fix extra keyboard report during test_fixture teardown * Add tests for pressing two keys with only different modifers * Fix #1708 When two keys that use the same keycode, but different modifiers were pressed at the same time, the second keypress wasn't registered. This is fixed by forcing a key release when we detect a new press for the same keycode. * Fix the NKRO version of is_key_pressed * Fix uninitalized loop variable Co-authored-by: Jack Humbert <jack.humb@gmail.com>
* 2020 February 29 Breaking Changes Update (#8064)James Young2020-02-291-26/+0
|
* Compile error if ONESHOT_TIMEOUT defined but oneshot disabled (#8100)Ted Lin2020-02-101-1/+3
| | | | | | | | | | | | | | * Compile error if ONESHOT_TIMEOUT defined but oneshot disabled When ONESHOT_TIMEOUT and NO_ACTION_ONESHOT are both defined, this code fails to compile. Wrap the one usage of ONESHOT_TIMEOUT that is inconsistent with the rest so all usages are properly wrapped by a check of NO_ACTION_ONESHOT. * Run file through clang-format Co-authored-by: Ted M Lin <tedmlin@gmail.com>
* Run clang-format manually to fix recently changed files (#7934)Joel Challis2020-01-191-1/+1
| | | | | | | | * Run clang-format manually to fix recently changed files * Run clang-format manually to fix recently changed files - revert template files * Run clang-format manually to fix recently changed files - format off for ascii_to_keycode_lut
* Add per-key IGNORE_MOD_TAP_INTERRUPT feature (#7838)zk-phi2020-01-101-2/+10
| | | | | | | | | | | * Implement IGNORE_MOD_TAP_INTERRUPT_PER_KEY - Add configurable option IGNORE_MOD_TAP_INTERRUPT_PER_KEY - Add function get_ignore_mod_tap_interrupt iff the option is enabled Unless IGNORE_MOD_TAP_INTERRUPT_PER_KEY is defined, this patch does not affect the resulting binary. * Add documentation for IGNORE_MOD_TAP_INTERRUPT_PER_KEY
* Fix typo in action.c (#7757)xyzz2020-01-021-1/+1
|
* Move tmk_core/common/backlight to quantum/backlight (#6710)Joel Challis2019-10-171-1/+4
| | | | | | | | | | | | * Move tmk_core/common/backlight to quantum/backlight * Add guards to backlight inclusion * Add guards to backlight inclusion * Update backlight guards on clueboard/60 * Use full paths to avoid vpath issues
* Fix bug in `do_code16()` (#6935)fauxpark2019-10-161-4/+26
| | | | | | * Fix bug in `do_code16()` * Remove qk_ mods functions
* clang-format changesskullY2019-08-301-328/+343
|
* Extend allowed range of tappable keycodes to include modifiers (#5809)fauxpark2019-08-081-12/+13
| | | | | | | | | | | | * Extend allowed range of tappable keycodes to include modifiers * Get rid of the magic numbers altogether * Remove some more magic numbers * Extract LM() functionality from ACT_LAYER_TAP * Use ACTION() macro everywhere
* Add support for TAP_CODE_DELAY to Hold-Tap keys (#5400)Drashna Jaelre2019-07-221-7/+12
| | | | | | * Add support for TAP_CODE_DELAY to Hold-Tap keys * Better handling for tap code delay and caps version
* Make Caps Lock delay more reasonable (#6199)Drashna Jaelre2019-07-161-1/+1
| | | | | | | | | | | | | | * Make Caps Lock delay more reasonable * Update documentation * Update docs/config_options.md Co-Authored-By: Konstantin Đorđević <vomindoraan@gmail.com> * Update docs/config_options.md Co-Authored-By: Konstantin Đorđević <vomindoraan@gmail.com>
* Fix TO() and DF() calling layer_state_set_[kb,user] twice (#6003)fauxpark2019-05-291-2/+2
|
* Typedef'ed layer_state_t to uint32_t (#3637)Alex Ong2019-05-171-4/+4
| | | | | | | | | | | | | | | | | | | | * Typedef'ed layer_state_t to uint32_t. This enables future work with layer_state_t to uint8_t for optimization purposes. * Removed accidental xeal60 commit * Revert to egyptian brackets, added sizeof(layer_state_t) so when layer_state_t is redefined it will automagically work. * Add additional typedefs * Add checks for setting layer state * Update tmk_core/common/action_layer.h Co-Authored-By: alex-ong <the.onga@gmail.com> * Revert commit.
* Make delay for Capslock in Hold-Tap functions configurable (#5497)Drashna Jaelre2019-05-161-1/+9
| | | | | | | | * Increase delay for Hold-Tap register for CAPSLOCK Because it seems that the 80ms delay wasn't too much * Screw it, make the caps delay a define and make it configurable
* compiles, but long delay on startup and problemsskullY2019-02-101-1/+1
|
* Add support for RETRO_TAPPING to LT(layer, kc)lambda_sakura2019-01-251-1/+9
|
* Keep pressed keys on layer state change (fixes #2053, #2279) (#3905)Konstantin Đorđević2018-12-281-1/+10
| | | | | | | | | | * Keep pressed keys on layer state change * Add doc comment for clear_keyboard_but_mods_and_keys * Keep pressed keys only if PREVENT_STUCK_MODIFIERS is on * Check STRICT_LAYER_RELEASE instead of PREVENT_STUCK_MODIFIERS
* Fix up tap_code functionality (#4609)Drashna Jaelre2018-12-141-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add delay in Tap Code to avoid issues I think a few people have reporting issues with it working properly, and it may be a timing issue. The 'register_code' uses this sort of delay in some of the functions, and this is probably why. Adding the 100ms delay should hopefully fix any issues with it. * Make tap_code delay configurable * Update documentation * Bring tap_code16 inline with changes * Fix type for tap_code16 Bad copy-paste job * Just use the value check for the define * Clarify timing in docs Co-Authored-By: drashna <drashna@live.com> * Wordsmithing Co-Authored-By: drashna <drashna@live.com>
* Add mousekey_send to (un)register_codeDrashna Jaelre2018-10-041-0/+2
|
* Make `PREVENT_STUCK_MODIFIERS` the default (#3107)Joe Wasson2018-09-171-1/+1
| | | | | | | | | | * Remove chording as it is not documented, not used, and needs work. * Make Leader Key an optional feature. * Switch from `PREVENT_STUCK_MODIFIERS` to `STRICT_LAYER_RELEASE` * Remove `#define PREVENT_STUCK_MODIFIERS` from keymaps.
* fix mousekey callJack Humbert2018-09-031-6/+11
|
* Enable mouse keys in register_code and unregister_codeSteven Liu2018-09-031-0/+6
| | | | This allows for macros to be assigned to press two mouse directions at same time, which allows for one key diagonals.
* Allow one-shot modifiers to be chainedGergely Nagy2018-05-141-3/+3
| | | | | | | | | | | | | | | | | | | Many a times one would want to use multiple modifiers with the same key, preferably without having to hold anything, like `Ctrl+Shift+C` or `Ctrl+Shift+V` to copy/paste in GNOME Terminal. To make this possible, we need to be able to chain one-shot modifiers, so that we can have multiple of them active at the same time. The easiest way to accomplish this is that whenever we activate a one-shot modifier, we apply it on top of the existing set, instead of re-setting the state. When deactivating, either due to an interrupt, or due to a timeout, we deactivate all oneshots anyway, so the clearing part is covered. When we turn the one-shot modifier into a toggle, that will also clear all one-shot modifiers first, so we covered that case too. Fixes #2796, #1580, and #856. Signed-off-by: Gergely Nagy <qmk@gergo.csillger.hu>
* Generate API docs from source code comments (#2491)skullydazed2018-03-221-5/+58
| | | | | | | | | | | | | | | | | | * Generate api docs from source code * Add a bunch of doxygen comments * more doxygen comments * Add the in-progress api docs * script to generate docs from travis * Add doc generation to the travis job * make travis_docs.sh commit the work it does * make sure the docs script exits cleanly
* Fix swap-hands tapping.Joe Wasson2018-03-161-4/+40
| | | | This is an inelegant hack for #2522 but makes things work. Basically we give `action.c` a chance to handle the hold event early so that we can swap the keyboard for later keys. Later, to allow the hold to happen again quickly we nuke the key record so that tapping is reset. I tried to find a cleaner way, honestly.
* Rename ONEHAND_ENABLE to SWAP_HANDS_ENABLE for consistencyJoe Wasson2018-03-161-3/+3
|