Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

InertiaMouse Plugin #1308

Open
besselfunct opened this issue Nov 9, 2022 · 0 comments
Open

InertiaMouse Plugin #1308

besselfunct opened this issue Nov 9, 2022 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@besselfunct
Copy link

Is your feature request related to a problem? Please describe.
Currently, MouseKeys is a difficult plugin to use for many scenarios, and is not capable of fully replacing a mouse for me (and I suspect many other users). In particular there are the following issues:

  • Traversing large distances is disconcerting using the warp feature, since the cursor immediately jumps.
  • Increasing traversal rate requires continued input, and holding multiple inputs at once precisely is quite difficult.
    In general, I find the plugin to be non-intuitive, and it doesn't get much use outside of the scroll up and scroll down keys.

Describe the solution you'd like
One solution to this problem is the implementation of an inertia attribute to the mouse.
This solution essentially emulates the way a trackball is used, and is employed on the Steam Controller/Steam Deck trackpads for precise navigation with limited input.
In this mode:

  1. A single key press sends the cursor in the desired direction at high speed
  2. The speed of movement decays over time until it reaches 0 or until the user presses a "brake" key
  3. Inputs can be provided in any order, and making precise diagonal maneuvers is much easier since you can make microadjustments to the course of the cursor as it approaches the destination (as one would do with a regular mouse)
  4. Holding the "brake" key and providing input results in small precise movements
    This model allows for rapidly moving the cursor across the desktop, while using the "brake" key to make microadjustments, allowing one to get the benefit of warp maneuvers, but with the precision of low mouse sensitivity. It also has the benefit of not requiring continued holding of the desired direction in order to get up to speed.

Describe alternatives you've considered
I have not considered any alternatives to this model. I'm not aware of anything other than "trackball emulation" within this space.

Additional context
This feature is implemented in full in an AutoIt script called TPMouse. This is Windows-specific, but the behavior of the cursor in this program is quite intuitive, and I was proficient after only 10-15 minutes of messing around with it.
As far as I can tell, lines 251-275 of TPMouse.au3 contain the damping model used to determine how the mouse decays.

@besselfunct besselfunct added the enhancement New feature or request label Nov 9, 2022
@gedankenexperimenter gedankenexperimenter self-assigned this Nov 25, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants