microsoft / PowerToys

Windows system utilities to maximize productivity
MIT License
111.71k stars 6.58k forks source link

Mouse Pointer Speed tray-popup/hotkeys/per-device options #19213

Open expikr opened 2 years ago

expikr commented 2 years ago

Description of the new feature / enhancement

image

Flyout

Add a systray icon with a popout for quickly accessing Pointer Speed options.

Essentially a "volume control" icon but for Pointer Speeds.

Instead of vague ticks/numbers, the explicit multiplier applied should be labelled.

Hotkey

In the popup there should be a checkbox that enables/disables hotkeys for incrementing/decrementing the slider, as well as setting back to neutral position (proposed default: [modifier] [+] / [-] / [0] for incre/decrement/recenter)

Per-device

While Precision Touchpads have their own instance of Pointer Speed and Acceleration options but still using the exact same calculation/input conversion algorithm as other devices.

This seems to indicate that the implementation already allows for per-device options, just that it's not exposed for some reason, perhaps due to OEM considerations of not wanting to confuse end-users.

In demographic of users who go out of their way to install PowerToys, the risk of confusion is very unlikely, so if the per-device management of input conversion factor is ever to be exposed, a PowerToys utility would be the ideal place to expose it.

Scenario when this would be used?

Flyout style quick-adjust is useful for a user to quickly verify or tweak this accessibility/comfort option.

"Mouse volume" hotkey would be an absolute godsend for drawing applications where the user might quickly switch between precise drawing (needing low pointer speed) and selecting UI elements (needing high pointer speed)

Per-device management is useful if user connects or swaps between multiple devices of different input resolutions.

Supporting information

According to this this link here the 0~10 slider steps in main.cpl is only an interleaved half of what's available in the UWP mouse settings page:

image image

image

Source: https://liquipedia.net/starcraft2/Mouse_settings

crutkas commented 2 years ago

how often do you adjust your cursor speed?

crutkas commented 2 years ago

/needinfo

expikr commented 2 years ago

how often do you adjust your cursor speed?

As was described in the post, when using drawing applications, there is constant back-and-forth between fine-precision drawing and quick-selection UI interactions. Imaging drawing a shape --> select different color --> draw another shape etc.

In non-drawing situations, adjustment due to switching device would be on the same order as adjusting volume when plugging in different impedance headphones or when first sitting down at an unconfigured PC.

Incidentally, this could potentially be integrated under the existing mouse utility suite.

crutkas commented 2 years ago

I would see this being lit up via a KBM macro or something, i don't see us directly building this out.

You may want to try out Auto Hotkey and there may be a script to do just this as FYI

expikr commented 2 years ago

If the feature proposal was just setting adjustment and hotkey then I wouldn't have opened an issue. The main reason for this request is the per-device profile functionality which currently have no exposed interfaces for app developers, only touchpad oems.

crutkas commented 2 years ago

if the API / ability to adjust per device does exist (not sure if it does), I'd still suggest having it via a macro versus dedicated utility.

If we had to actively monitor the mouse input stack to hack it in, that would be very taxing on any system due to the amount of events