-
Notifications
You must be signed in to change notification settings - Fork 310
[Enhancement] VK_LAZY_modifier isn't being triggered by key repeats #72
Comments
The current behavior is intended. |
There is this plugin to smoothly scroll with the keyboard. It uses directional keys to move, and the modifiers to change the speed. The speed change is applied as soon a modifier is pressed, so the user never has to release the directional keys and can use the modifiers to accelerate/slowdown according to content of the page. Using homerow mode though, the lazy_key_modifiers never get triggered if the directional key is already being pressed, so no speed change, unless the directional key is pressed again. Having a lazy_key sensible to key repetition would make this issue go away. |
It's a limitation that we cannot change repeated key behavior during repeating. https://github.com/tekezo/KeyRemap4MacBook/blob/master/src/core/kext/VirtualKey/VK_MOUSEKEY.cpp If you can do, I welcome pull requests. |
Trying to understand this.. |
We should add 2 types of VirtualKey. One is direction keys.
One is accelation key.
These are correspond to VK_MOUSEKEY_UP,VK_MOUSEKEY_DOWN,... and VK_MOUSEKEY_HIGHSPEED. |
What will VK_ACCELERATABLE_ACCELATION do to VK_ACCELERATABLE_UP? Is there any way of compiling and running keyboardremap4macbook without having to create a package and install it? |
VK_ACCELERATABLE_UP sends KeyCode::CURSOR_UP events periodically by timer. VK_MOUSEKEY_HIGHSPEED modifies a magnitude of X,Y movements in timer callback. You can replace core components temporary by following commands. update kext: update server: |
Sorry for being so much time away from this issue. In my application, I'm not measuring the repeat rate to control the speed. In fact the repeat rate is completely ignored and the movement is totally independent from it. I'm looking for the lazy_modifier keys to be activated if I press them while a directional key is already being pressed. Currently this doesn't happen as they are only activated when another key is pressed after them, but not before. That's why I talked about the repetition: If the lazy modifiers would activate, not only on key press but also on repetition, they would become enabled even if the other key is already being pressed and is repeating. Thank you so much for the help! :) |
It might not be suitable for your settings because I've forgotten your environment status. <autogen>
__HoldingKeyToKey__
<!-- from -->
KeyCode::OPTION_L,
<!-- to -->
KeyCode::VK_LAZY_OPTION_L,
<!-- separator -->
KeyCode::VK_NONE,
<!-- holding -->
KeyCode::OPTION_L,
</autogen> |
Sorry, I think I don't understand exactly what is the behaviour of HoldingKeyToKey and what each parameter does.. Thank you |
HoldingKeyToKey changes a key to two kinds. You can specify this two keys by separating KeyCode::VK_NONE. You can adjust a threshold of holding down time by "[Holding Key to Key] Holding Threshold" in Key Repeat tab on Preferences. |
I'm trying to implement some ideas you gave me and also clean homerow_mode.xml which seems to be a bit messy. However I forgot how to built checkbox.xml and include it. The documentation I found only teaches how to build the entire app or how to use private.xml. Can you revive my memory? Thanks |
Please execute these command in Terminal.app. cd src/core/server/Resources Then, checkbox.xml and include xml files will be updated and reloaded. |
Sweet it's even more streamlined! On Wednesday, 27 March 2013 at 13:30 , Takayama Fumihiko wrote:
|
Hi, I'm trying to catch an EXTRA1 like this:
However, the EXTRA1 doesn't seem to be activated or catched. There are the 3 ways I've been trying without success:
Any idea on how to make this work? |
@aristidesfl This autogen works on my machine. <autogen>__KeyToKey__ KeyCode::D, ModifierFlag::EXTRA1, KeyCode::OPTION_L</autogen>
<autogen>__KeyToKey__ KeyCode::K, KeyCode::CURSOR_DOWN, KeyCode::VK_MODIFIER_EXTRA1</autogen> If you want to repeat Down key, use these autogens. <item>
<name>My Custom Setting</name>
<identifier>private.my_custom_setting</identifier>
<block>
<config_only>notsave.homerow_flags1</config_only>
<autogen>__KeyToKey__ KeyCode::D, KeyCode::OPTION_L</autogen>
</block>
<autogen>
__KeyToKey__
KeyCode::K,
KeyCode::CURSOR_DOWN,
Option::KEYTOKEY_BEFORE_KEYDOWN,
KeyCode::VK_CONFIG_FORCE_ON_notsave_homerow_flags1,
Option::KEYTOKEY_AFTER_KEYUP,
KeyCode::VK_CONFIG_FORCE_OFF_notsave_homerow_flags1,
</autogen>
</item>
<item hidden="true">
<name>flags</name>
<identifier vk_config="true">notsave.homerow_flags1</identifier>
<autogen>__ShowStatusMessage__ moge</autogen>
</item>
```xml |
If you keep some key pressed (is such a way it send repeated keydown events), and then activate a VK_LAZY_modifier, the modifier is never triggered.
I don't know if it was mean't to be like this on purpose, but I'm currently suffering from the lack of activation of the modifier in this situation.
cheers
The text was updated successfully, but these errors were encountered: