aboutsummaryrefslogtreecommitdiffstats
path: root/quantum/process_keycode
AgeCommit message (Collapse)Author
2017-02-06Merge pull request #960 from ofples/feature/combosGravatar Jack Humbert
Keyboard combination triggers
2017-02-06Merge pull request #981 from jonasoberschweiber/osx-surrogate-pairsGravatar Jack Humbert
Add support for Unicode supplementary planes on OS X
2017-01-29race condition between oneshot_mods and tap_danceGravatar SjB
since the keycode for a tap dance process gets process only after the TAPPING_TERM timeout, you really only have ONESHOT_TIMEOUT - TAPPING_TERM time to tap or double tap on the key. This fix save the oneshot_mods into the action.state structure and applies the mods with the keycode when it's registered. It also unregisters the mod when the the tap dance process gets reset.
2017-01-23turn off rgb_midi in ezGravatar Jack Humbert
2017-01-09Unregister all mods before inputting Unicode, and reregister afterwardsGravatar Priyadi Iman Nurcahyo
2016-12-31Add support for supplementary planes for OS XGravatar Jonas Oberschweiber
2016-12-23add different scales for music modeGravatar Jack Humbert
2016-12-16Merge branch 'master' into feature/combosGravatar Ofer Plesser
2016-12-16Refactored as well as added support for action keys in combosGravatar Ofer Plesser
2016-12-12specialise music variablesGravatar Jack Humbert
2016-12-10Added support for timing out combos if a key as been pressed for longer than ↵Gravatar Ofer Plesser
COMBO_TERM
2016-12-10Implemented basic key combination featureGravatar Ofer Plesser
2016-11-28Merge branch 'master' of github.com:jackhumbert/qmk_firmware into wu5y7Gravatar Jack Humbert
2016-11-26fix strict-prototypes warningGravatar Priyadi Iman Nurcahyo
2016-11-12mergingGravatar Jack Humbert
2016-11-10Keep unicode's input_mode through a power cycleGravatar Zach Nielsen
2016-10-26Merge pull request #844 from priyadi/unicode_wincompose_inputGravatar Jack Humbert
Unicode WinCompose input method
2016-10-23Unicode WinCompose input methodGravatar Priyadi Iman Nurcahyo
2016-10-23UNICODE_MAP: remove 5 char limit; ignore leading zeroes; handle OS limitationsGravatar Priyadi Iman Nurcahyo
2016-10-16working with power limitGravatar Jack Humbert
2016-10-10Unicode map framework. Allow unicode up to 0xFFFFF using separateGravatar Priyadi Iman Nurcahyo
mapping table
2016-10-02Declare Unicode method hex_to_keycode() as “weak”Gravatar coderkun
Declare Unicode method hex_to_keycode() as “weak” to be able to override it in keymaps.
2016-09-29Merge pull request #794 from AGausmann/midi-patchGravatar Jack Humbert
Missing ifdef statement
2016-09-29Missing ifdef statementGravatar Adam Gausmann
2016-09-21add user_data fieldGravatar Pavlos Vinieratos
2016-09-21formattingGravatar Pavlos Vinieratos
2016-09-21restore each_tap callbackGravatar Pavlos Vinieratos
2016-09-01tap-dance: Do not start a sequence on keyupGravatar Gergely Nagy
There was an odd case, which confused the hell out of tap-dance: suppose you had a number of tap-dance keys, on a layer, and as part of the tap-dance, you turned that layer off - or had it on one-shot to begin with. In this case, the keydown event would trigger the tap-dance key, but the keyup would not. This had two funky consequences: - tap-dance did not correctly register that the dance has ended. - pressing any other tap-dance key would interrupt the previous tap-dance, and potentially input unwanted characters. To fix this, we simply do not start a tap-dance sequence on keyup, only when it is pressed. This way the previous sequence has enough time to time-out and finish properly, and we don't get confused. This fixes algernon/ergodox-layout#107. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-31process_unicode: Add get_unicode_input_mode()Gravatar Gergely Nagy
There may be cases where one would like to know the current Unicode input mode, without having to keep track of it themselves. Add a function that does just this. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-24quantum: Move qk_ucis_state to process_unicode.cGravatar Gergely Nagy
In order to not declare the same variable in multiple objects (which happens when building UCIS-enabled keymap for both the ErgoDox EZ and the ErgoDox Infinity), move the declaration to the .c file, and keep only an extern reference in the header. Many thanks to @fredizzimo for spotting the error in Travis, and suggesting the fix. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-21Drop method to set Unicode input key and declare start and finish methods as ↵Gravatar coderkun
“weak” instead
2016-08-21Add method to set Unicode input key for ISO 14755Gravatar coderkun
https://github.com/jackhumbert/qmk_firmware/issues/672
2016-08-18Add a register/unregister_code16 pair of functionsGravatar Gergely Nagy
These functions register not only the 8bit keycode, but the modifiers too. It doesn't handle the full range of the upper 8bits, just the mods, but that's a good start. Changed the tap-dance pair functions to use these, so one can do: `ACTION_TAP_DANCE_DOUBLE (KC_COLN, KC_SCLN)` ...and that will do the right thing. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-17tap-dance: Major rework, to make it more reliableGravatar Gergely Nagy
This reworks how the tap-dance feature works: instead of one global state, we have a state for each tap-dance key, so we can cancel them when another tap-dance key is in flight. This fixes #527. Since we have a state for each key, we can avoid situation where a keyup would mess with our global state. This fixes #563. And while here, we also make sure to fire events only once, and this fixes #574. There is one breaking change, though: tap-dance debugging support was removed, because dumping the whole state would increase the firmware size too much. Any keymap that made use of this, will have to be updated (but there's no such keymap in the repo). Also, there's a nice trick used in this rework: we need to iterate through tap_dance_actions in a few places, to check for timeouts, and so on. For this, we'd need to know the size of the array. We can't discover that at compile-time, because tap-dance gets compiled separately. We'd like to avoid having to terminate the list with a sentinel value, because that would require updates to all keymaps that use the feature. So, we keep track of the highest tap-dance code seen so far, and iterate until that index. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-17tap-dance: Include action_tapping.h for TAPPING_TERMGravatar Gergely Nagy
Include `action_tapping.h`, so the keymap does not have to define a `TAPPING_TERM` for us, and we can use the default. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-15process_unicode: Introduce a slight delayGravatar Gergely Nagy
When entering unicode codes, use some delay, so the OS has time to process the information. This is not needed on all systems, but some seem to require it. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-15process_unicode: Replace register_hex32Gravatar Gergely Nagy
It turns out that register_hex32 did not work reliably, and some systems only allow 7 chars after the unicode magic sequence, while others allow 8. To remedy the situation, store the codes as strings, and type those in instead of doing bit shifting magic. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-15process_unicode: Use uint32_t for UCIS purposesGravatar Gergely Nagy
Use a single uint32_t to store the unicode of a symbol, instead of an array of uint16_ts. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-15process_unicode: Make the startup overridableGravatar Gergely Nagy
Extract out the part of `qk_ucis_start` that inputs the placeholder symbol, and make it weak, so it can be overridden. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-15process_unicode: Call process_ucis() automaticallyGravatar Gergely Nagy
If UCIS is enabled, call process_ucis() automatically from process_record_quantum(). Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-15process_unicode: Handle too long UCIS symbol namesGravatar Gergely Nagy
If the symbol name being entered is longer than the max, stop recording it, and stop processing keycodes apart from the ones that can delete, finish or cancel the sequence. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-15process_unicode: Add a way to enter unicode symbols by nameGravatar Gergely Nagy
The purpose of this change is to allow keymaps to specify a dictionary of unicode symbol name to code mappings, and let the person at the keyboard enter unicode symbols by name. This is done by having a way to trigger unicode symbol input mode, when all keys are cached until Esc, Enter or Space are pressed. Once that happens, we try to look up the symbol from our lookup table. If found, we erase back, and type the unicode magic in to get that symbol. If not found, we still erase back, start unicode input mode, and replay what the user typed in. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-15process_unicode: Small refactor & linux fixGravatar Gergely Nagy
This moves the unicode input start / end sequences into their own functions, so keymaps and other functionality can build on it too. At the same time, it changes how the Linux variant works, to match reality: CTRL+SHIFT must be unregistered too, and we close the thing with a Space instead. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-13process_unicode: Fix set_unicode_input_mode()Gravatar Gergely Nagy
In the header, this was defined as `set_unicode_input_mode`, but the implementation had `set_unicode_mode` for a name. Changed the implementation to match the header. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-07-27tap-dance: Add some debugging supportGravatar Gergely Nagy
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-07-24Fixes midi functionalityGravatar Jack Humbert
2016-07-24Merge pull request #552 from robertdale/music-play-fixGravatar Jack Humbert
Fixes issue #551 - ensure there's a recording to play before playing
2016-07-24ensure there's a recording to play before playing; also enables the LGUI ↵Gravatar Robert Dale
button to play a tone
2016-07-22tap-dance: Code cleanupGravatar Gergely Nagy
Removes a number of duplicated code, by passing actions around instead of keycodes, so the various dance action functions do not have to look up the action, but the caller does that for them. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-07-22tap-dance: Support user_data for the callbacksGravatar Gergely Nagy
Refactored the code a little, so all callbacks now receive a `user_data` pointer, which can be anything. As an example, the key pairs from `ACTION_TAP_DANCE_DOUBLE` now use this, and custom, built-in functions. This makes it easier to extend the tap dance functionality, and also simplifies the code a little. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>