BTT drawing gestures versus xGestures. Please contact xGestures dev for superior implementation.


#1

I've been using xGestures for many years and it works very well. I recently wanted to experiment with utilizing gestures without requiring me to hold down a modifier key during a gesture or pressing a key before and after a gesture — and xGestures doesn't currently have that ability.

I got your BTT trial and implemented a 4 finger tap that runs this simple applescript:

tell application "System Events"

key down {control}

delay 1

key up {control}

end tell

This allows me to 4 finger tap, then quickly perform a gesture with xGestures without physically holding down the modifier key. Works pretty good but it could be better. For example, if I don't finish a gesture in time it screws things up. I'd much rather have the modifier key only "auto-lift" after my gesture is complete, but I'm not sure how to accomplish that with AppleScript or if it's even really possible.

That's when I tried your implementation of drawing gestures. The problem I'm having with your implementation is I get a lot of false positives for other gestures. For example, I have a gesture of 'down and up' to close browser windows and 'up and down' to open new tabs. Often when I perform those gestures in BTT I end up with the application switcher gesture being triggered which is set to "up and right" or "up and left". This isn't an issues with xGestures. When I do a xGestures pattern it works every time without error, ever. With BTT it's very hit or miss every other time I gesture. I made gesture variations in your BTT app to help guard against this, but it's just not helping in this case.

Could you please contact the xGestures dev and see if you can implement the way he reads gesture input? It's vastly more stable/precise/accurate than BTT's drawing implementation. So much so that I've reverted back to xGestures because BTT misses the mark so much. Now I'm only using BTT for one gesture and that's just the four finger tap to run the applescript I pasted above so I can use xGestures.

Also, I should mention that xGestures is really good at intelligently handling conflicting gestures. I have the same gesture to both mute the sound in global gestures and hide photoshop in photoshop gestures. In xGestures, it prioritizes the photoshop gesture when I'm performing the gesture in photoshop over the global gesture automatically. With BTT, the global always seems to win out and I wish that was changed for the better.


#2

Could you export a preset with some sample gestures that fail to be recognized reliably on your system? Which version of macOS are you running?

In general BTT also automatically prefers the gestures set up for specific apps. For drawing gestures this works best when copying/dragging the exact same gesture to the app and just assign a different action.

Triggering the modifier keys reliably should be doable with this feature:


#3

Also it might help to increase the number of points sampled in the advanced preferences:


#4

Oh and one more thing that helps a lot with false positives is to increase the required recognition certainty (especially when using very simple drawings):


#5

And one more thing:
While looking into this I noticed a bug in the current versions of BTT that may have lead to false positives because the required recognition certainty was ignored in some cases.

If possible try upgrading to the latest alpha version.


#6

I'm adjusting those settings now, updated to the alpha and fine-tuning it to work better. There's some progress by also removing some duplicate gestures I suspect, but overall it's still consistently mistaking gestures for one another and closing tabs when I'm trying to switch tabs and all kinds of unwanted behavior. Also, now that I've made adjustments I'm having to repeat gestures a lot in order for them to take.

I still think you should look at whatever xGestures is doing to detect gestures properly. No fine-tuning needed, just works. When I set an xGesture gesture it works every time without adjustments and all this time attempting to fine tune things. It just works.


#7

Here's the export:


#8

The part where I input modifier_key_up. If my modifier key is the control key, where do I input that it's the control key that should be "up" after I perform a gesture? Also, if I'm doing a gesture in xGestures it won't know that I finished a gesture, correct? IOW, I'm pretty lost on how to make that work.

Thank you for all the quick help, by the way.


#9

The trigger you enter there is a named trigger, they can be set up in the "Other" tab in BetterTouchTool.
(see the second screenshot). There you can assign an apple script or predefined action to up the modifier key you want.
I don't know XGestures, but I assume it knows the gesture has finished when the modifier key is released?

It's not really feasible to replace the drawing gestures in BTT with something else, but I'm looking to improve the algorithm a bit. Your preset seems to work pretty well here, a recognition certainty of about 0.8 seems to work best for me. I just did about 50 tab switches in safari and didn't have any false positives.

Which version of macOS are you running?


#10

Unfortunately xGestures doesn't know when the gesture is finished. Or, rather, the app is expecting for the user to continuously hold the modifier key and only release it once the gesture is completed and then the gesture is implemented once the modifier key is released.

My OS is Sierra 10.12.6 with latest security updates, etc.


#11

I think it should work like this:
If you configure e.g. a three finger click in BTT to press down the modifier key. Then, while still touching the trackpad you perform the drawing/xgesture until you think it's finished. Then you remove your finger from the trackpad. Afterwards BTT sends the modifier key up using the "named trigger" set up in the "Other" tab in BTT..

I asked about the macOS version because I have noticed big improvements to the drawing gestures in macOS 10.13.x and I assume some issue with one of the math libraries has been fixed there, but I'm not quite sure.


#12

Thank you for the tip! I see, I should use BTT to hold down the modifier key instead of my applescript being launched. Then I perform the gesture and BTT will then release the modifier key for me. Do this like so:

The only thing I don't understand is the "named trigger" set up. I set it up like this, but it just seems to stay stuck on control key down no matter what I do after my four finger tap even after attempting to make a gesture. Have I fudged these settings?

[looks like because I'm a new forum user I can only post 1 image per post, so I'll show the rest of the settings in 2 following posts]


#13


#14

Unfortunately doesn't work. Just stays stuck with the modifier (control) key down and doesn't enable modifier key up after I lift my fingers off the trackpad. And, xGestures doesn't seem to see the gesture either.


#15

Here's what happens with those settings above. When I attempt to do an "down & up" gesture to close the tab. First I hit 4 finger tap and then xGestures is gathering my gesture via the control key down. But after I lift my fingers nothing happens and the control key down stays stuck, no gesture action is performed and everywhere I click brings up a menu because control key down is stuck until I restart BTT.

If I attempt to do a 4 finger tap and then keep my fingers down, nothing happens at all. BTT doesn't seem to see the 4 finger tap and enact control key down until I lift my fingers off the trackpad.

demo


#16

Ok, I see what I did different. I had it set to 4 finger tap instead of 4 finger click. With 4 finger click your method works. I guess I'm just too picky but I don't have a newer force touch trackpad and it's a mechanical trackpad and I have to push down and hold with enough force in my wrist that I could see it causing stress over time on my wrist. I wish there was a way to do the same thing with a gentle tap instead of a more forceful click motion.

Edit: Ok, it won't work with four finger tap, but I did get it working with a tip tap left (three finger fix) so I'm going to experiment from there.

Edit 2: Think I found the sweet spot with Tip Tap Right (2 fingers fix) and then moving my index finger to complete the gesture. Feels a little weird from all my muscle memory of doing it differently for so long, but I'm going to try this for a while and see if I get used to it and if it remains comfortable over time.

Thank you very much for all the assistance. Your support is amazing.


#17

So, got it working great, but I'd love to use 'Tip Tap Right (1 finger fix)' — But for some reason that keeps misfiring every other time I try to enable it. 'Tip Tap Right (2 finger fix)' works every time, but it doesn't feel as natural so I'd really like to keep it at 'Tip Tap Right (1 finger fix)'.

Any ideas why the two finger gestures isn't getting picked up as consistently as the three finger one?


#18

Got everything working with your help/advice. It's now working nicely with the two finger method of tapping my right finger then moving my left for the gesture. Just wanted to thank you for the great support. I'm now able to use xGestures with a modern trigger thanks to you and BTT.


#19

awesome! :slight_smile:


#20

Thank you again Andreas for all your previous help. I've run into a snag and was wondering if there was a way to fix the issue.

I'm using a Wacom Bamboo tablet with touch capabilities and it's working great. However, BTT isn't recognizing TipTap Right (1 Finger Fix) from the tablet which renders the tablet fairly useless as an interface for me.

This works fantastic on the MBP trackpad as mentioned above in my second to last post above, but not at all with tablet.