Commit Graph

67 Commits

Author SHA1 Message Date
fauxpark
2f6c068e0d Extend allowed range of tappable keycodes to include modifiers (#5809)
* 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
2019-08-08 13:58:05 -07:00
Drashna Jaelre
3261c408e4 Add support for TAP_CODE_DELAY to Hold-Tap keys (#5400)
* Add support for TAP_CODE_DELAY to Hold-Tap keys

* Better handling for tap code delay and caps version
2019-07-22 20:23:57 -07:00
Drashna Jaelre
f6651424a0 Make Caps Lock delay more reasonable (#6199)
* 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>
2019-07-16 01:21:52 -07:00
fauxpark
d16056e60a Fix TO() and DF() calling layer_state_set_[kb,user] twice (#6003) 2019-05-29 07:45:28 -07:00
Alex Ong
00d1d7828c Typedef'ed layer_state_t to uint32_t (#3637)
* 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.
2019-05-17 13:47:50 -07:00
Drashna Jaelre
48b01446ba Make delay for Capslock in Hold-Tap functions configurable (#5497)
* 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
2019-05-16 10:28:06 -07:00
skullY
bf2670601d compiles, but long delay on startup and problems 2019-02-10 15:37:12 -08:00
lambda_sakura
8e47f64888 Add support for RETRO_TAPPING to LT(layer, kc) 2019-01-25 11:27:14 -08:00
Konstantin Đorđević
93b004c943 Keep pressed keys on layer state change (fixes #2053, #2279) (#3905)
* 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
2018-12-28 11:07:56 -08:00
Drashna Jaelre
02d44beb44 Fix up tap_code functionality (#4609)
* 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>
2018-12-14 09:01:58 -08:00
Drashna Jaelre
dad579c8f8 Add mousekey_send to (un)register_code 2018-10-04 10:44:28 -04:00
Joe Wasson
743449472e Make PREVENT_STUCK_MODIFIERS the default (#3107)
* 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.
2018-09-17 13:48:02 -04:00
Jack Humbert
a14eb01883 fix mousekey call 2018-09-03 16:59:32 -07:00
Steven Liu
fa1ee47cf2 Enable mouse keys in register_code and unregister_code
This allows for macros to be assigned to press two mouse directions at same time, which allows for one key diagonals.
2018-09-03 19:27:11 -04:00
Gergely Nagy
38f204db30 Allow one-shot modifiers to be chained
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>
2018-05-14 10:09:28 -04:00
skullydazed
7c9d5ace14 Generate API docs from source code comments (#2491)
* 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
2018-03-22 02:50:38 -04:00
Joe Wasson
5d771039ad Fix swap-hands tapping.
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.
2018-03-16 16:33:43 -04:00
Joe Wasson
7230923b05 Rename ONEHAND_ENABLE to SWAP_HANDS_ENABLE for consistency 2018-03-16 16:33:43 -04:00
Balz Guenat
4931510ad3 backlight breathing overhaul (#2187)
* add breathing to bananasplit

* backlight breathing overhaul

* fix the backlight_tick thing.

* fix for vision_division backlight

* fix a few keymaps and probably break breathing for some weirdly set-up boards.

* remove BL_x keycodes because they made unreasonable assumptions

* some fixes for BL keycodes

* integer cie lightness scaling

* use cie lightness for non-breathing backlight and make breathing able to reach true max brightness
2018-01-01 17:47:51 -05:00
tsankuanglee
04b9b62bdc RETRO_TAPPING (#1922)
* add RETRO_TAP: tap anyway, even after TAP_TERM, if no interruption

* consistent variable name

* add option doc

* change name for consistency

* make RETRO_TAPPING default to off
2017-10-31 11:15:22 -04:00
Joe Martin
b91ffba4be #1792 added in waits from tmk for locking switches
fixes #1792
2017-10-10 07:15:41 -10:00
Carlos Quiroz
74d752b531 Remove noisy debug line 2017-06-18 12:17:51 -04:00
Carlos Quiroz
3ab0f4d9e5 Deactivate oneshot mods once timedout 2017-06-18 12:17:51 -04:00
Jack Humbert
b6c60333e4 Re-enable mouse buttons 2017-05-29 13:21:38 -04:00
dbroqua
81e85a1a4e - Added integration of IBM Trackpoint 2017-05-26 20:35:31 +02:00
jerryen
9c284786e7 Workaround for the macOS caps lock delay (#1308)
* Add 80ms delay for KC_CAPS when used as a tap key

Workaround for the macOS caps lock delay

* Revert "Increase TAPPING_TERM for the Clueboard"

This reverts commit a74e69e9fa.
2017-05-19 17:24:47 -07:00
Nephiel
bd2c0b9648 Call led_set for layer action events to update LEDs on layer changes 2017-05-10 19:26:39 +02:00
Fred Sundvik
07fc34e962 Fix warnings when ACTION_ONESHOT is disabled 2017-04-13 16:00:29 +03:00
Priyadi Iman Nurcahyo
c68e596f32 Implement faux-clicky feature 2017-02-13 08:03:07 +07:00
SjB
45e0d09414 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
2017-01-29 13:01:47 -05:00
SjB
6f44ca7a59 oneshot timeout would only timeout after an event.
After setting a ONESHOT_TIMEOUT value, the oneshot layer state would
not expire without an event being triggered (key pressed). The reason
was that in the process_record function we would return priort to
execute the process_action function if it detected a NOEVENT cycle. The
process_action contained the codes to timeout the oneshot layer state.
The codes to clear the oneshot layer state have been move just in
front of where we check for the NOEVENT cycle in the process_record
function.
2017-01-15 23:29:24 -05:00
Didier Loiseau
d430999047 Fix issue #772 Meh and Hyper not working 2016-09-23 01:20:49 +02:00
Joe Wasson
8090f6b499 Improve one-hand support by adding more actions and tap keys. 2016-08-20 17:46:53 -07:00
Joe Wasson
dd37860160 Add one-hand support.
This adds an action, `ACTION_SWAP_HANDS`, that swaps the the keys on the keyboard across a keymap-defined hemisphere in order to support one-hand typing without requiring a separate one-handed layer. See updated `doc/keymap.md` for more information.
2016-08-20 17:46:53 -07:00
Jack Humbert
bf5c2ccee5 splits process_action up to handle records separately (#329)
* implements leader key for planck experimental

* allows override of leader timeout

* adds ability to use the leader key in seq

* fixes leader keycode

* adds chording prototype

* fixes keycode detection

* moves music mode to quantum.c

* disables chording by default

* adds music sequencer functionality

* implements audio/music functions in quantum.c

* splits up process_action to allow independent processing of actions

* merging?
2016-05-15 00:47:25 -04:00
Erez Zukerman
1a8c0dd22d Leader key implementation (#326)
* implements leader key for planck experimental

* allows override of leader timeout

* adds ability to use the leader key in seq

* fixes leader keycode

* adds chording prototype

* fixes keycode detection

* moves music mode to quantum.c

* disables chording by default

* updates process_action functions to return bool
2016-05-15 00:27:32 -04:00
Thiago Alves
74e97eefd7 Adds oneshot layer and oneshot tap toggling (#308)
This commit is mostly a cherry-pick from `ahtn` at
https://github.com/tmk/tmk_keyboard/pull/255.

These are the changes:

* Adds ACTION_LAYER_ONESHOT
* Adds ONESHOT_TAP_TOGGLE
* Mentions sticky keys in the docs on oneshot.
2016-05-05 21:41:37 -04:00
Jack Humbert
2bbf3d5820 stops forcing debug_action 2016-04-28 23:23:33 -04:00
IBNobody
d5b72e7bde Fixed many compiler warnings related to print being disabled 2016-04-17 12:54:32 -05:00
Erez Zukerman
153a6fb0d3 Merge pull request #182 from Vifon/modifier-release-fix
Fix the layer-dependent modifiers handling
2016-04-06 22:47:31 +03:00
Didier Loiseau
08871e56f7 Fix issue #221: LGUI(KC_LSFT) does not work
on mod keys, register LGUI, LSFT etc. as normal mods
 instead of weak mods:
 - they won't be cleared when pressing another key (#188)
 - they won't be cleared by layer switching
 - LSFT(KC_LGUI) will now have the same behavior as LGUI(KC_LSFT)
2016-04-06 00:30:50 +02:00
Wojciech Siewierski
567f256c5d Refactor the source layer cache encoding 2016-04-05 11:08:04 +02:00
Wojciech Siewierski
47dd29513e Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware into modifier-release-fix 2016-04-03 11:23:00 +02:00
Wojciech Siewierski
4dce7258d1 Cleanup after merge
- remove a superfluous parenthesis
- wrap lines longer than 80 characters
- add const specifiers where appropriate
- remove unnecessary casts
2016-04-02 19:29:01 +02:00
eltang
5a9091689c Update action.c 2016-04-02 10:00:31 -07:00
eltang
6c8e374d57 Update action.c 2016-04-02 09:59:53 -07:00
eltang
f4f592910c Update action.c 2016-04-02 09:34:01 -07:00
eltang
da101b8866 Update action.c 2016-04-02 09:29:32 -07:00
eltang
fddccc95fe Update action.c 2016-04-02 09:13:13 -07:00
eltang
680301e3e3 Update action.c 2016-04-02 06:48:44 -07:00