Migrating from Windows, alternative for StrokeIt and AutoHotkey

Hi, my name is Daniel and I'm new here.

I'm a Windows user looking into switching to MacOS, but one of my problems I seem to be facing with this is my use of mouse gestures and of AutoHotkey.

Mouse gestures:

I have a MX Anywhere S2 which I have set up to react to mouse gestures by using the 3rd-party tool StrokeIt (StrokeIt - Mouse Gestures for Windows).

It is configured to be invoked at the press of the right mouse button, followed by drawning the gesture by moving the mouse over the desktop and executed when releasing the button after finishing drawing the gesture.

I can abort the gesture if I stop moving the mouse for half a second.

I watched a video from MacAutomationTips named "Draw and Trigger Menu Items and Other Actions On Your Mac", and at 5:37 into the video he shows the "Advanced Settings" -> "Drawing Gestures" dialog (https://www.youtube.com/watch?v=2IJaSG5EU6A&t=335s)

This comes very close to what StrokeIt offers, yet I don't know if it has a timeout.

I came across the post "Custom Drawing / Mouse Gesture Button" (Custom Drawing / Mouse Gesture Button) which seems to be somewhat related.

I'll now explain how I use StrokeIt and would like to know if this is possible with BTT.

These are the gestures I'm using:

Global Actions (either close or minimize the window):

  • Press button and slide mouse up (straight line): Send Alt+F4 to the window beneath the cursor = close the window
  • Press button and slide mouse down (straight line): Simulate keypress Win+Shift+Down, then simulate keypress Win+Down, then execute internal command "Windows - Minimize". All this ensures that whichever window which was below the mouse during the mouse down event gets minimized.

Browsers (chrome.exe, firefox.exe):

  • Override Global gesture "up": Send Ctrl+F4 (instead of Alt+F4) to close the current tab instead of exiting the browser.
  • Add gesture "right then up": Send Alt+F4 to exit the browser.
  • Add gesture "left": Send ALT+LEFT to go back in the browser's history for the tab
  • Add gesture "right": Send ALT+RIGHT to go forward in the browser's history for the tab (to undo a back in history)

Editors (studio64.exe, code.exe):

  • Override Global gesture "up": Send Ctrl+F4 (instead of Alt+F4) to close the currently focused file (these are tabbed editors).
  • Add gesture "right then up": Send Alt+F4 to exit the editor.

Explorers (explorer.exe, XYplorer.exe)

  • Add gesture "left": Simulate keypress BACK in order to navigate into parent folder
  • Add gesture "right": Simulate keypress ALT+RIGHT to go forward in history (undo a went back into the parent folder)

Then there are some more, but if these examples can be replicated, everything else should work as well. Also, what's important here is that these are straight lines (right-up is one line with a corner to then turn upwards).

Does this work?

The mouse has extra buttons which I've configured in Logitech Options to simulate keypresses

  • Side button 1 = Ctrl+Shift+T -> Reopen last closed tab in browsers.
  • Side button 2 = Ctrl+Alt+Shift+F5 -> Intercepted by AutoHotkey in order execute a custom action.

The keyboard has some keys intercepted by AutoHotkey in order to do things like VolumeDown key turns off the light in the room, VolumeUp key turns it on, VolumeUp+F5 dims the light to the lowest level, VolumeUp+F8 sets it to the brightest level.

Also the CapsLock key prints the current time "20:35 – ", CapsLock+a the current date "2023-10-12", CapsLock+s the current datetime "2023-10-12 20:35:52", since I don't use CapsLock at all.

What are my chances to get all of this working on a Mac?

BTW: I would be buying a Mac Mini or Mac Studio without a touchpad, and I would continue to use the Logitech mouse because of the infinite scrolling.

Thanks in advance.

The main problem I see, BetterTouchTool's mouse gesture algorithm currently doesn't handle straight lines well. Your setup seems to be mostly based on straight lines, which will probably cause issues.

I have plans to improve this, but right now it might be not the best replacement for your usecase.

Hi Andreas,

Thank you for your answer. Are there any alternatives on MacOS?

Or, if switching to a Magic Mouse, which apparently has a touchpad on it, acceptably similar ways to do this on the touchpad of the mouse?

I've read that you've been wanting to deal with the straight lines issue for some time now, is there some kind of ETA? Because straight lines are physically very fast and easy to draw, which is why they're so important to me.

How come that this is so hard to implement?

With the Magic Mouse there are many ways to achieve that stuff, you can configure various swipe gestures with BetterTouchTool.

BTT uses a simple algorithm $1 Recognizer, which unfortunately comes with this limitation. I plan to replace it with something better, but there is no ETA yet.