spaceflick

Keep the half-swipe.
Lose the half-second.

macOS burns half a second animating every space switch — a full second on ProMotion. Every other fix takes your gesture away to fix it.

$ brew install julienR2/tap/spaceflick
Without spaceflick
Editor
Terminal
With spaceflick
Editor
Terminal

Grab either screen and drag it sideways. Let go slowly and both behave the same. Flick it and only the right one lands immediately.

Made with 🤖 by Nowmad

The real thing

Two takes on the same machine, recorded back to back, one gesture each way.

Without spaceflick
With spaceflick

It's worse than it looks. Your keystrokes keep going to the space you left until the animation finishes — so the wait isn't just visual, it's dead input time.

Everything it does. Nothing it doesn't.

One passthrough event tap rewrites a single number as your swipe ends — the release velocity the Dock reads to decide how fast to finish.

The gesture stays native

No suppression, no synthetic events. The finger-tracking phase never even sees the tap.

Half-swipe peek intact

Hold mid-swipe to see two spaces at once, exactly as macOS always let you.

Peek and let go still works

A slow release passes through untouched, so macOS still decides it from how far you dragged.

Safe at both ends

It won't fling you past the first or last space. At an edge it rubber-bands, like always.

~0% CPU

Two field reads and one field write per swipe. No timers, no polling — 10ms of CPU across 19 swipes.

SIP untouched

No scripting addition, no kext, no disabling System Integrity Protection. Just Accessibility.

The alternatives

Every other fix trades something away.

StockBTTyabaiAeroSpaceBlinkspaceflick
Near-instant switch
Half-swipe peek preserved
Keeps the native 4-finger swipe
Native macOS spaces
No SIP changes
Free & open source
Hotkeys, jump to space N
Works inside Mission Control

The two bold rows are the whole reason spaceflick exists. The bottom two are what it gives up in exchange: no hotkeys, no jump-to-space-N, nothing inside Mission Control. Blink has all of that and is a far more complete app — if you want it, go get it.

Where these values come from

I've tested only spaceflick and Blink myself. The BetterTouchTool (paid, and vastly more general than this one job), yabai and AeroSpace columns come from their own documentation plus Blink's published comparison, on the same criteria it used. yabai reaches instant switching only with SIP partially disabled and its scripting addition loaded. AeroSpace doesn't switch native spaces at all — it “employs its own emulation of virtual workspaces instead of relying on native macOS Spaces due to their considerable limitations”, so the gesture rows aren't a fair fight: it's solving a different problem, and solving it well.

Install. Grant. Done.

Free and open source · MIT · about 180 lines of Swift · no dependencies

  1. Install and start it

    $ brew install julienR2/tap/spaceflick && brew services start spaceflick
  2. Grant Accessibility

    Add /opt/homebrew/opt/spaceflick/bin/spaceflick under System Settings → Privacy & Security → Accessibility. An event tap can't see the trackpad without it.

  3. Swipe

    No restart needed — spaceflick waits for the grant and starts working the moment you flip the switch. It runs as a launchd agent, so it comes back at login and after a reboot.

Build from source instead

git clone https://github.com/julienR2/spaceflick && cd spaceflick && ./build.sh install — that one also gives you a proper /Applications app. Or ./build.sh && ./build/spaceflick run -v to try it without installing anything. Both builds are unsigned, so an upgrade invalidates the Accessibility grant: if swipes go back to feeling slow, remove spaceflick from the Accessibility list and re-add it.