Mapping keyboard shortcuts to trackpad swipes, is it possible?

Basically, I'm looking to map a keyboard shortcut to a 3-finger swipe right and another to a 3-finger swipe left (not just switch spaces, I need the swipe itself, like I'm actually doing it on a trackpad for something I'm building haha).
I couldn't find that action in BTT, soI just wanted to make sure here, is it actually impossible?
Any reply would be appreciated!

Can you describe what you’re using it for? Do you just need a discrete swipe or do you want a fluid swipe while holding the keyboard shortcut?

It currently is not exposed in the UI but it can be done

I want to press a keyboard shortcut which would trigger a very quick 3 finger swipe, just like if I were swiping really fast on a trackpad. Doesn't have to be anything super fluid or move like a finger would haha

what is your trackpad configured to do when swiping with three fingers?

Well, it's mapped to the default "Move a space right/left", but when mapping those shortcuts to the buttons on my MX Master 3S (using either the ctrl+left/right shortcut or the BTT action) I've noticed that it sometimes gets a little delayed when trying to swipe between spaces back and fourth quickly on my mac, but a 3 finger swipe on the trackpad always works perfectly. So I'm looking to make a custom setup: map the buttons in my MX Maseter 3S to a keyboard shortcut which will emulate the 3 finger swipe in BTT, not the default macOS "Move a space right/left" action.
Does that make sense?

Ah, in that case use the new "Move Left / Righ tA Space (Without Animation)" action. These do it without any delay. However they require the current alpha versions of BTT

Alright I'll try that too, but I'm just curious is there any way to emulate the swipe? I kinda want it to have the animation ngl :sweat_smile:

that action performs the swipe, but if you'd want an animation it would need to emulate multiple "steps" which it currently does not.

This results in crashes with version 6.521.. It works fine on boot but then after some time on Left or Right shortcut without Animation makes the BTT crash. I don't see any logs for it either in the ~/Library/Application\ Support/BetterTouchTool/Logs .

@Andreas_Hegenberg Can you help me debug this?

Logs:

BetterTouchTool 2026-06-06--23-06-19-856.log.zip (7.6 KB)

The only combination i have is this (my whole reason to buy the licence haha!):

Not sure if this is the right space to post this. Could create a bug report as well if you think that helps. And also, if you need any other info please let me know!

System Information:

Hardware Overview:

Model Name: MacBook Pro
Model Identifier: Mac16,8
Model Number: Z1FE000NHLL/A
Chip: Apple M4 Pro
Total Number of Cores: 12 (8 Performance and 4 Efficiency)
Memory: 48 GB
System Firmware Version: 18000.120.36
OS Loader Version: 18000.120.36
Activation Lock Status: Enabled

@Jenish_Rudani could you check whether there are crashlogs in the macOS console app's crash report section?

I removed all ips from there. Started fresh. I am monitoring. Will report back once that issue pops up..

I had claude do some digging....

@Andreas_Hegenberg — quick follow-up with what I found before clearing the reports.

Crash signature (consistent across ~24 reports, June 1–7):

libswiftCore.dylib assertionFailure(:_:file:line:flags:) ← Swift assertion/precondition
BetterTouchTool (×6 frames)
CoreFoundation CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER
Foundation -[NSNotificationCenter postNotificationName:object:userInfo:]
AppKit applicationStatusSubsystemCallback
LaunchServices ___LSScheduleNotificationFunction_block_invoke_2
→ EXC_BREAKPOINT (SIGTRAP), com.apple.main-thread

So it's a Swift assertion firing in a BTT observer for the application-status notification (frontmost-app-changed / app launch-quit, scheduled via LaunchServices). It fires ~60
s after launch under normal app/space switching — which lines up with my single trigger being a Left/Right space switch (no animation), since that churns the active-app/space
state.

There's also a rarer variant — EXC_BAD_ACCESS (SIGSEGV) in objc_release during autorelease-pool drain at the top of the runloop (looks like a use-after-free; JavaScriptCore was
resident at the time).

Key finding on my end:

  • It is not version-specific — I reproduced the identical signature on 6.521 (2026051309) and on the 6.554 alpha (2026060703).
  • It appears to be config/data-driven: moving my Application Support/BetterTouchTool data store + prefs aside and starting fresh stopped the crashes. After re-adding just my one
    trigger, it's been stable. So something in my stored config reliably trips the assertion when the app-status notification arrives.

I've kept a backup of the old (crashing) data store config and can send it to you privately — that should let you reproduce the assertion directly. I've also re-armed crash monitoring,
so I can grab a fresh full .ips the moment it recurs. Happy to file a formal bug report with all of this if that's easier to track. Just let me know what's most useful!

yes, please send the full report to andreas@folivora.ai if possible!

If you have used pirated versions of BTT in the past you need to completely reset BTT or better reinstall macOS - the cracked versions often contain malware and the crashlog is very typical for that.