32 Commits
Author SHA1 Message Date
Wojciech Siewierski 60f5ce8890 Keymap: Update keyboards/planck/keymaps/vifon (#4084)
* Implement macro recording

* Remove off-by-one from the macro recorder

* Holding both modifiers enables the third layer

* Exit the 3rd layer into one of the secondary ones

* Regular Enter and Escape on the secondary layers

Useful for the macro recording because the "tap" modifiers always act as
modifiers there.

* Remove the buffer overflow from the macro recorder

When the limit is reached, the backlight blinks with each keypress.

* More robust macro recording implementation

* Macro record refactoring and improvement

- support for a second macro (saved using the end of the macro buffer)
- improved reliability

* Add comments to my macros

* Macro recording: remove a redundant code

* Separate the raise+lower layer from the special layer

* Add back/forward keys

* Bind mouse movement

* More readable KC_TRNS

* Improve the mouse bindings

* Use a convenience macro instead of the low-level ACTION macro

* Add mouse to the Dual layer; make most of the layer transparent

* New "mouse" layer; clean up the "special" layer

* CapsLock, NumLock and ScrollLock on the Special layer

* Enable my fix for the stuck modifiers and adjust the dual layer to it

* Fix the macro recording after enabling the stuck mods fix

* Click with Lower/Raise+Space

* Reduce the memory used by the macro recording

Previously the auxiliary layers were numbered 30 and 31 which resulted
in all 32 array elements being allocated regardless of the actually
used layers in the user code.

* Optimize source_layers_cache for the cache memory

Swapping the array indices should increase the locality of the memory access.

* Remove the mouse layer

* Use update_tri_layer to simplify the code

* Add some custom per-keymap build options

* Add ShiftLock

* Secure the reset button

* Add numeric layer

* Remove explicit layer keys on LW and RS layers

* Replace Alt+left/right with Back/Forward keys

* Sleep/delay key (for macro recording)

* App/menu key

* Fix stuff after merging to master

* Local per-keymap config.h; minor cleanup

* Remove the old macro_record.h

Replaced with dynamic_macro.h

* Adjust my keymap to the current API

* Pure Pro Gaming layer

Accessible by double tapping the Pure Pro layer. It features switched
Lower and Raise layers, for one-handed access to numbers.

* Pure Pro Gaming layer: no Mod4, persistent number layer under RShift

* Pure Pro Gaming layer activated with long press, not double press

* Reduce the size of the vifon keymap

See: issue #930

* Increase the dynamic macro buffer

The default was actually decreased. The actual used value didn't change.

* Add the context menu key

* No more strange ideas in the gaming layer

* Reduce the firmware size by disabling API_SYSEX_ENABLE

* Make slash available on the PP layer (replaces the RESET key)

* Add a generic "hold this key" macro

* Add a missing undef

* Turn LGUI in the gaming layer into LW instead of disabling it

It's not as disruptive as LGUI and it makes the LW/RS order kind of
more consistent (LW on the left, RS on the right).

* Refactor the Pure Pro Gaming layer

* Try out the 1st party qmk KC_LOCK (vs my own KM_HOLD)

* Alternative way to switch keyboard layouts with the left hand

* Add dot & slash to the Pure Pro layer (but not to the Gaming layer)

* Now that there is a second KM_LW, we can simplify the layout a bit

It was confusing to have the modifiers completely swapped.  Just
moving them is much more natural.

* Disable the console now that qmk got bigger

* Update the keymap for the modern qmk standards
2018-10-06 07:49:04 -07:00
Wojciech Siewierski 8cd9d26246 Update the dynamic macro docs according to the recent changes
See qmk/qmk_firmware#1275.
2017-05-21 14:27:29 +02:00
Wojciech Siewierski a1e156a3d2 dynamic_macro.h: Do not use backlight_toggle if backlight is disabled
Fixes #1199.
2017-05-05 00:11:24 +02:00
Wojciech Siewierski 10a7cd7e5a dynamic_macro.h: Add debug logs 2017-05-04 23:57:22 +02:00
Wojciech Siewierski 8e94c9b4cb dynamic_macro.h: Make the documentation more clear 2017-05-04 22:39:02 +02:00
Wojciech Siewierski 4b50ea15a9 dynamic_macro.h: Do not save the keys being held when stopping the recording
More specifically, we save them and then place the `macro_end` pointer
before them so they are essentially ignored and the other macro may
freely overwrite them.
2017-05-04 01:42:09 +02:00
Wojciech Siewierski 436d661775 dynamic_macro.h: Fix an off-by-two error
We need to check whether we just passed the after-the-end point of the
other macro. Instead we were checking whether we are going to reach it
now.
2017-05-04 01:26:35 +02:00
Wojciech Siewierski 5e2a999278 dynamic_macro.h: Always toggle the backlight twice as a notification
Apparently sometimes the backlight was toggled only once and it was left on.
2017-05-04 00:58:01 +02:00
Wojciech Siewierski 40fe30e4d6 dynamic_macro.h: Ignore all the initial key releases
Right after the user initiates the macro recording, they usually need
to release some keys used to access the DYN_REC_START layers. It makes
sense to ignore them.

Note: The keys used to access the DYN_REC_STOP key are *not* ignored.
2017-05-04 00:14:38 +02:00
Wojciech Siewierski 4d905b17f4 Signing off for GPL licensing 2017-02-09 18:00:54 +01:00
Wojciech Siewierski c6299a7859 Update the vifon keymap 2017-01-13 18:52:13 +01:00
Wojciech Siewierski 26759e126e New Planck keymap: vifon 2016-10-09 13:34:17 +02:00
Wojciech Siewierski 70f32842e5 Reduce the default dynamic macro buffer
There have been reports of it leaving not enough free memory preventing
the keyboard from working properly.
2016-10-09 12:52:39 +02:00
Wojciech Siewierski ea7115534a Improve the dynamic macro documentation 2016-08-19 00:18:45 +02:00
Wojciech Siewierski 950755edaf Add the dynamic macros documentation to the readme 2016-08-18 01:40:54 +02:00
Wojciech Siewierski 39e8e61258 Implement the dynamic macros that are recorded in runtime 2016-08-18 01:37:13 +02:00
Wojciech Siewierski 644c8c7927 Fix the process_record_nocache function
This function relies on checking the disable_action_cache static
variable before accessing the layer cache.
2016-08-18 01:34:05 +02:00
Wojciech Siewierski 02a3d77940 Optimize source_layers_cache for the cache memory
Swapping the array indices should increase the locality of the memory access.
2016-04-13 22:24:42 +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 8ef14d09b8 Update PREVENT_STUCK_MODIFIERS documentation in README 2016-04-02 19:45:02 +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
Wojciech Siewierski 97cc44e063 Merge branch 'modifier-release-fix' of https://github.com/eltang/qmk_firmware into modifier-release-fix 2016-04-02 19:25:10 +02:00
Wojciech Siewierski 1a09e96b95 Update the memory consumption total value in README 2016-03-28 10:05:42 +02:00
Wojciech Siewierski 36103edb7d Update the memory consumption of PREVENT_STUCK_MODIFIERS in README 2016-03-28 00:25:43 +02:00
Wojciech Siewierski b4f442dfea Cut the memory consumption of PREVENT_STUCK_MODIFIERS in half 2016-03-27 23:51:46 +02:00
Wojciech Siewierski a5cdc3aab1 Expose the pressed_actions_cache global variable 2016-03-15 16:51:50 +01:00
Wojciech Siewierski 73cb87740b Always provide an implementation of process_action_nocache 2016-03-15 16:03:30 +01:00
Wojciech Siewierski 20dd9c0326 process_action may be called either with key cache or without it
If one wants to temporarily disable the key cache (for example because
it interferes with a macro), `disable_action_cache` must be set to
`true`. `process_action_nocache` is a simple wrapper doing just that for
a single call.
2016-03-13 00:18:20 +01:00
Wojciech Siewierski 8d55a12a95 Document the issue of stuck modifiers 2016-03-08 08:48:43 +01:00
Wojciech Siewierski c2480884aa Fix the layer-dependent modifiers handling
Closes #181.
2016-03-05 14:42:17 +01:00
Wojciech Siewierski 65b41e2e59 Use boolean AND instead of bitwise (possible typo)
Fortunately seems harmless.
2016-02-07 11:48:28 +01:00