input-remapper icon indicating copy to clipboard operation
input-remapper copied to clipboard

UI: improve recording for devices with analog axes

Open kermitfrog opened this issue 2 years ago • 4 comments

Devices with Analog axes can be very sensitive. While recording, this can cause a lot of unwanted input, e.g. when I tried to map an axis on my SpaceMouse (imagine it as joystick with 6 analog axes - so maybe the most extreme use case) , the UI got me: Z + + Y Up + RX Left + RY Down + RZ - + X Right

The expected result (what the user wants) is usually either one axis or a button on the device.

Possible solution: As default, only record analog input if it's value is over a threshold (maybe 1/3 of max). Long pressing the Record button could open a dropdown menu with access to:

  • Record everything (as it works now)
  • Slider to change threshold
  • Choose axis directly

kermitfrog avatar Dec 06 '22 12:12 kermitfrog

@jonasBoss isn't the recording pipeline also using the default deadzone?

sezanzeb avatar Dec 06 '22 12:12 sezanzeb

As default, only record analog input if it's value is over a threshold (maybe 1/3 of max).

The threshold is currently at 30% for EV_ABS inputs. And at 3 Units for EV_REL inputs except for Wheel events there the threshold is at 1 Unit. This works well for most devices.

The issue with the SpaceMouse form 3DConnexion is that it generates EV_REL events, which is Stupid. Physically the SpaceMouse is a joystick, not a mouse. I guess we can increase the threshold for EV_REL events, but it is more important to have a good user Experience with common devices like mouse.

The fact that SpcaeMouse records 6 inputs at once is unfortunate, but not a deal-breaker in my opinion. There is Always the possibility to delete unwanted inputs after the recording in the Advanced menue.

Long pressing the Record button could open a dropdown menu

I am not sure if we can detect a long press in GTK properly. But maybe a split button like this: image

jonasBoss avatar Dec 06 '22 14:12 jonasBoss

isn't the recording pipeline also using the default deadzone?

No, the recording Pipeline always converts to key-events with a hard-coded threshold.

jonasBoss avatar Dec 06 '22 14:12 jonasBoss

The issue with the SpaceMouse form 3DConnexion is that it generates EV_REL events, which is Stupid. Physically the SpaceMouse is a joystick, not a mouse.

Right - I had completely forgotten about that (and completely agree on the stupidity).

I guess we can increase the threshold for EV_REL events, but it is more important to have a good user Experience with common devices like mouse.

I agree. And choosing the axis with a popup menu should be sufficient. Another alternative would be to implement the ability to set thresholds for EV_REL events per device.

kermitfrog avatar Dec 24 '22 19:12 kermitfrog