Trackball - "cursor" and "twist to scroll" remap

Hey there,

I have been using HID Remapper for macropads and it beyond EPIC.

But I am struggling with trackballs and any ideas are welcome, since it has been 2 days without any success :slight_smile:

I can remap on a layer “Cursor X”, “Cursor Y” and “Twist to scroll”, but since this is a trackball - whenever I touch the ball it registers CursorX/Y movement and triggers all remaps at the same time.

Tried adding mapping like “Cursor X → Cursor Y → 0” in attempt to block one axis when the other is being used… no luck. Tried expressions with the idea of threshold/deadzone… uhm not successful at all, to be honest, for me it is hard to wrap my head around expressions and even tried the expression builder.

——————————
Here is a quick simple example:

I hold Right Mouse Button and Twist to scroll to adjust volume, it works, but this also triggers Zoom, as it registers CURSOR Y movement.

What trackball is this? The Kensington Slimblade? We can try some things, but ideally the decision between scrolling and cursor movement would be handled by the trackball’s firmware.

Yes, it is Slimblade.

I have been trying again Expressions to try and detect the action, but still no luck.

I think you need to look at this differently. I’m guessing the issue isn’t that the SBP sends both cursor and scroll movements at the same time, but that it sends a cursor movement and then engages scrolling (since it has to guess what you want it to do). I don’t have a SBP any more, so I can’t test this behaviour myself.

You could perhaps overcome this by adding a delay after the first cursor movement, then checking if the next movement is cursor or scroll and acting on that. However, you’d perceive the delay every time and that might be annoying.

There is already the standard delay from TAP/HOLD that usually drives me crazy, but this time it manages to clean the start of the action.
The problem is that during the action itself it manages to trigger the other ones, so I was holping for a deadozne around the cursor and when I go out of the zone it triggers cursor remap.

Let’s clarify something before going further, since I don’t have a SlimBlade Pro to test. Which of the following do you get when you scroll in one direction continuously?

  1. A single, quick zoom followed by volume change
  2. Constant zooming and volume change at the same time

The reason I ask is that we have to isolate what the SBP is sending every time you twist. I would be surprised if it sends both scroll and cursor data at the same time, because then your mouse would move all over the screen while you’re scrolling. I don’t remember that being the case, but it’s been a year since I last used one.

I would say point 2.

I hold Right mouse button and twist to scroll to change volume (since Windows uses steps of 2, sometimes it is a bit of scrolling :))
While doing all that scrolling from time to time it triggered also the zoom, it is not on every step and it is not on a set step either, it feels on random.
(the direction of the scroll and zoom in consistent with the configuration, e.g. it is not zooming in and out)

“to isolate what the SBP is sending every time you twist” - when twisting with the fingers, there is a slight cursor movement. I can see the Hid-Remmaper monitor register it, though my eyes cannot detect it.

Thanks, that detail helps a lot to understand what the SBP is doing. I wonder if the randomness comes from it detecting the faintest of pauses in your twist and sending more pointer events.

Can you try giving it a single big spin, like you’re spinning a top? I’m curious if you’ll still get the random events.

Hey,

I was testing today and I believe the randomness is coming from the finger movement - at the moment when you lift and again touch the ball.

If I try really hard with one spin I am able to trigger only scroll.

Deadzone would solve this and I red the documentation on expressing, but still cannot make it work.

I was testing today and I believe the randomness is coming from the finger movement - at the moment when you lift and again touch the ball.

Yeah, that’s what I was getting at in my earlier comments.

Honestly, I would just program the zoom function onto Layer 2 with a different activation button/combo. Then you could also use scrolling to control zoom (if you want), and you never have to worry about accidentally triggering zoom or volume control. I know it’s less satisfying, but it’s easy to set up in a reliable way.

I did, but truth be told, there are only 4 layers and so many combos :frowning:

There’s actually 8, they’re just secret. But you can access them by editing the JSON file.

Thank you!
Managed to make two additional layers work, that removed the need for me to remap the cursor!

(just out of curiosity, why hide the other layers from the web config?)

Haven’t found a nice way to fit them in the UI yet. :smiley:

1 Like