SjB [Sun, 29 Jan 2017 18:04:43 +0000 (13:04 -0500)]
race condition between oneshot_mods and tap_dance
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.
SjB [Sun, 29 Jan 2017 17:56:20 +0000 (12:56 -0500)]
moved oneshot cancellation code outside of process_record.
The oneshot cancellation code do not depend on the
action_tapping_process and since process_record get called via the
action_tapping_process logic moved the oneshot cancellation code into
the action_exec function just before the action_tapping_process call
SjB [Sun, 29 Jan 2017 17:06:24 +0000 (12:06 -0500)]
registering a weak_mods when using register_code16
Scenario:
Locking the KC_LSHIFT, and then using a tap dance key that registers a
S(KC_9) will unregister the KC_LSHIFT.
The tap dance or any keycode that is registered should not have the
side effect of cancelling a locked moditifier. We should be using a
similar logic as the TMK codes in tmk_core/comman/action.c:158.
Luke Silva [Sat, 28 Jan 2017 07:42:35 +0000 (18:42 +1100)]
Add support for various tapping macros
A macro key can now be easily set to act as a modifier on hold, and
press a shifted key when tapped. Or to switch layers when held, and
again press a shifted key when tapped.
Various other helper defines have been created which send macros when
the key is pressed, released and tapped, cleaning up the
action_get_macro function inside keymap definitions.
The layer switching macros require a GCC extension - 'compound
statements enclosed within parentheses'. The use of this extension is
already present within the macro subsystem of this project, so its use
in this commit should not cause any additional issues.
MACRO_NONE had to be cast to a (macro_t*) to suppress compiler
warnings within some tapping macros.
Stephen Tudor [Sat, 28 Jan 2017 05:51:07 +0000 (00:51 -0500)]
Merge branch 'master' into smt/planck
* master:
Clarify license on abnt2 keymap (#1038)
replace jackhumbert with qmk
Add gitter image, start update to qmk org
Remove COLEMAK from preonic_keycodes enum
layer defines to enum
Update readme for smt Preonic keymap
Add smt keymap for Preonic
updated all the other keymaps to support the new changes.
fix: infinity60 keyboard was not using quantum features.
Compare Makefile with itself instead of using `--help`
SjB [Sat, 21 Jan 2017 07:01:55 +0000 (02:01 -0500)]
speeding up (un)register_code16
In register_code16 and unregister_code16 we call register_code and
unregister_code twice, once for the mods and once for the keycode.
The (un)register_code have many check to see that keycode we have sent
however because we know that we are sending it a mods key, why not
just skip all of it and call (un)register_mods instead. This will skip
alot of checks and should speedup the loop a little.
SjB [Tue, 24 Jan 2017 03:01:33 +0000 (22:01 -0500)]
fix: infinity60 keyboard was not using quantum features.
the quantum matrix codes where not being initialized or/and called
so no feature of the quantum firmware could be used. These codes have
been added and now we can enjoy the quantum firmware goodness.
TerryMathews [Sun, 22 Jan 2017 20:37:48 +0000 (15:37 -0500)]
Refactor code to eliminate duplicate defines
* Moved duplicated defines out of inappropriate source files (matrix
pins in keymap subdirectory)
* Eliminated default keymap directory
* Hardcoded serial keymap to use serial defines and EE_CONFIG
* Hardcoded i2c keymap to use i2c defines
Andreas Schmidt [Sun, 22 Jan 2017 11:32:40 +0000 (12:32 +0100)]
SG Ergodox layout: Add ENTER to left keyboard
- Swiss German Ergodox layout:
Added ENTER key to left keyboard half on media layer
such that the enter key is available on both halves to
be able to flash both halves without an additional keyboard.