Chrysalis icon indicating copy to clipboard operation
Chrysalis copied to clipboard

MouseKeys settings customization on UI

Open phongnh opened this issue 4 years ago • 7 comments

Could you please add UI for customizing MouseKeys settings like speed, speedDelay and accelSpeed and accelDelay?

Default mouse settings is quite slow.

phongnh avatar Jun 11 '20 08:06 phongnh

[Here is the relevant doc in the Kaleidoscope repo] (https://github.com/keyboardio/Kaleidoscope/blob/ea45b7807164c18b0df28c74c045672d12b50f18/plugins/Kaleidoscope-MouseKeys/README.md)

rudolph9 avatar Dec 12 '21 21:12 rudolph9

A work around is the build custom firmware with the acceleration increased https://github.com/keyboardio/Chrysalis-Firmware-Bundle

diff --git a/Keyboardio/Atreus/default/Atreus/Atreus.ino b/Keyboardio/Atreus/default/Atreus/Atreus.ino
index f0f0029..7b234a4 100644
--- a/Keyboardio/Atreus/default/Atreus/Atreus.ino
+++ b/Keyboardio/Atreus/default/Atreus/Atreus.ino
@@ -139,6 +139,7 @@ void setup() {
   Kaleidoscope.setup();
   SpaceCadet.disable();
   EEPROMKeymap.setup(10);
+  MouseKeys.accelSpeed = 6;
 }

 void loop() {

rudolph9 avatar Dec 12 '21 23:12 rudolph9

Thanks @rudolph9

phongnh avatar Dec 13 '21 11:12 phongnh

Not to derail the purpose of this issue, but another feature I wish existed was a speedup modifier for MouseKeys. Basically a key that when pressed will make the mouse keys faster, when you stop pressing it it's slow again.

Perhaps a good way to implement this would be to offer a corresponding accelerated mouse key, they you could put the accelerated keys on the same buttons on another layer and map a shift-to-layer button that would result in the accelerated keys to be pressed :thinking:
That's essentially what I did for the scroll keys and it works really well. I wonder if you could just configure the mouse keys twice in the firmware, 1. How you normally want it, 2. configured way faster and then map the keys accordingly!

rudolph9 avatar Dec 13 '21 16:12 rudolph9

@algernon — I'm looking into making some substantial modifications to MouseKeys right now, and it would be great to enable it to be configured via Chrysalis (maybe via a MouseKeysConfig plugin?). The configuration parameters would be different than the current ones (and hopefully more useful).

gedankenexperimenter avatar Feb 23 '22 04:02 gedankenexperimenter

Enabling it via MouseKeysConfig would be great, yep. Since the current settings aren't very intuitive to begin with, exposing more useful ones would be even better.

algernon avatar Feb 23 '22 09:02 algernon

What I've got in mind is a "(maximum) speed" value and a "time to reach (maximum) speed". The latter would be entered in milliseconds, and the former would be a somewhat abstract number.

I'm also thinking of adding some modifier keys that change the mouse speed on the fly (i.e. "hold down this key to double speed; hold down this other key to get half speed"). Those could just be done as a Macro, of course.

I'm guessing MouseKeysConfig would use onSetup() and onFocusEvent() to interact with EEPROM/Chrysalis? Now that I'm thinking about it, this is something that might be best configured on the fly with an onKeyEvent() handler that can adjust the parameters quickly (in addition to reading & setting the value via Chrysalis, not in place of it).

gedankenexperimenter avatar Feb 23 '22 15:02 gedankenexperimenter