The macOS Space-switching animation, at whatever speed you want it. The slide between
desktops takes about a third of a second, macOS has no setting to change it, and the
defaults write commands you will find online stopped working over a decade ago.
1.0.1 is a safety and honesty release. Nothing about the slider changed.
What changed
- A patch that gets interrupted can no longer be misread. If the helper were ever
stopped between two of the five instructions it writes, 1.0.0 could mistake the
half-written Dock for a patched one: the next change wrote its constants over Apple's
own, and Remove freed 16 KiB of Dock's code. That Dock is now refused instead, and
killall Dockclears it. This was found in review, not in the wild. - The five instructions go in under one change of page protection rather than five,
so there is one brief moment when Dock's code page is being rewritten, not five. - The check that nothing else in Dock uses the register the patch borrows now runs for
as long as that register is live, not just as far as the rubber band, and it reads the
scalar floating-point forms correctly instead of mistaking opcode bits for register
numbers —ucvtf's opcode is 3, andd3is the register every shipping build borrows.
A future Dock is refused for the right reasons, and accepted for the right reasons. - Remove tells the truth. If a Dock could not be put back — after turning SIP's
debugging restrictions back on, say — Remove now says so and leaveskillall Dockto
you, instead of reporting a clean removal. - When a change fails, the window says why. The helper's own words — an unrecognised
Dock, SIP's debugging restrictions turned back on — now reach the window, instead of one
fixed sentence that fitted every failure equally badly. - A
config.jsonhand-edited to a speed below 0.2 now means Default rather than being
clamped to Instant, andspaceswitchspeed --helpworks again.
Two things the documentation got wrong, now corrected:
killall Dockclears the patch from that Dock, but while the helper is installed it
puts the patch back within a second. To stop it, use the switch under System
Settings → General → Login Items & Extensions, or Remove Space Switch Speed….- Each stop is roughly the same fraction of Apple's own timing on any display, within a
tenth at Balanced and a fifth at Instant. It is not the same wall-clock time: a 60 Hz
display stays a little quicker, as it does with Apple's own animation.
Upgrading from 1.0.0
Drag the new app over the old one in Applications and let Finder replace it in place,
rather than moving the old copy to the Trash first: 1.0.0's helper reads a trashed app as
a deletion even when a replacement is already in Applications, and removes itself and
your setting a few minutes later. 1.0.1's helper follows the replacement. The next time
you move the slider it asks for your password once, to replace the helper. Your setting
is kept.
Verified against
Six Docks, from macOS 15.0 (2341.0.1) to 26.6.2 (2427.6), checked against Apple's own
restore images and against the Dock this was built on, and the macOS 27.0 beta 8 Dock
(26A5425a). macOS 27 changed how Dock receives trackpad gestures, but its Space-switch
integrator is the same as 26.6.2 instruction for instruction, apart from the adrp page
numbers every rebuild changes, so 1.0.1 recognises it. That is a check of the binary, not
of a Mac running 27; the 27.0 release will be checked when it ships. The full table, the
disassembly and the reasoning are in the
README and
docs/REVERSE-ENGINEERING.md.
Before you install
Three requirements, and none is negotiable:
- An Apple Silicon Mac running macOS 15 Sequoia or later. Intel is not supported.
macOS 13 and 14 are refused deliberately: they drive the animation from a fixed 60 Hz
timestep rather than the display's, so the patch would be wrong. - SIP's debugging restrictions turned off. One command in Recovery, and a real
security tradeoff. Please read
what it means
before deciding — it explains precisely which protection you give up, which you keep,
and how to undo it. Space Switch Speed will never change your SIP configuration for you. - An administrator account, or an administrator's password to hand. Writing to Dock
needs root; the setting itself is shared by every account on the Mac.
Install
-
Download
SpaceSwitchSpeed-1.0.1.dmgbelow, open it, and drag Space Switch Speed
onto the Applications folder beside it. -
Clear the download quarantine. The app is signed for local use but not notarised by
Apple, which needs a paid Developer ID, so without this macOS refuses to open it:xattr -dr com.apple.quarantine "/Applications/Space Switch Speed.app"If you would rather not run a command, launch the app once, let it be blocked, then
click Open Anyway in System Settings → Privacy & Security. Control-clicking
the app and choosing Open does not work — Apple removed that bypass in macOS 15. -
Open it and drag the slider. The first change asks for your password once, because
writing to Dock needs root. Everything after that is silent.
Uninstall
Space Switch Speed → Remove Space Switch Speed… puts Dock back, removes every file
it placed, and quits; then move the app to the Trash. If a Dock could not be put back, it
says so instead and leaves killall Dock to you. Or just delete the app: the helper
notices within a few minutes, restores Dock and removes itself.
Does it modify macOS?
Nothing of macOS is touched on disk — not Dock, not the system volume. The change is five
instructions and two floating-point constants in the running Dock process's memory, and
it disappears on the next Dock restart, which is why a small helper puts it back. The
Dock binary is byte-identical before and after. The only files it writes are the helper
and its settings, listed under Uninstall in the README.
Verifying this download
shasum -a 256 ~/Downloads/SpaceSwitchSpeed-1.0.1.dmg
016491edab68880ab99509716f1547f10058b217d54e1008ec461aae26288a3a
If it refuses to find the animation on your Mac, that is the most useful bug report
there is — there is an issue form
for exactly that.