44

Is there any way to speed up the animation when you switch from one space to another on Mac OS X?

I'd like to make the space-transition quicker, or even instantaneous.

Does anybody know of any way to do this, or any software to do so?

2
  • 4
    +1 Good question (although I don't feel Spaces animation is too slow for me). My research so far indicates that there are no options to speed up/turning off Spaces animation.
    – hanleyp
    Sep 6, 2009 at 1:09
  • I hate it when they make you wait for animations. This is bad UX. Animations should make the experience more pleasant instead of irritating users by making them wait.
    – acmpo6ou
    Jul 10 at 17:51

8 Answers 8

11

On my M1 Macbook Pro running Monterey, 12.3.1, this solution worked for me where others did not:

  1. Open Displays options in System Preferences
  2. Change Refresh Rate from ProMotion to 60Hz.

It makes the animation speed the same as it is on Big Sur, on my Intel Macbook Pro. That is to say, it makes it significantly faster.

I believe that the chipset is not the difference, but rather, the OS version or the display type (because my machine running Big Sur does not have a Refresh Rate option for its display.)

On both OS versions, there is also a variant of the touch gesture for swapping spaces that makes the switch almost instant. However, it requires you to make a wider range of motion very quickly, and it is much more difficult to perform on my M1 machine than my Intel one. (Again, I believe the chipset is not the difference, but rather, the OS version or perhaps the trackpad itself.) If changing the refresh rate is not good enough for you, then this gesture is your only recourse.

5
  • 5
    It does help a bit but also makes the transition and general movement look much more jittery. May 16, 2022 at 14:31
  • 1
    Wow! This Refresh Rate really helped me! It's not how much faster this transition is, but it is really faster to get the focus on the switched desktop! Thanks!
    – leo begher
    Jun 3, 2022 at 8:12
  • Wow, this is the winner! The animated transitions between screens take about half the time now. I have no idea why lowering the refresh rate makes the speed of animations different, but there you have it!
    – sstur
    Jul 14, 2022 at 14:50
  • Wonderful, it works on my Macbook Pro M1Max with a Extend Display.
    – John Xiao
    Dec 15, 2022 at 7:30
  • @DanielPorteous I did not find that to be true at first, but over time, I would occasionally notice that my mouse cursor had very noticeable "afterimages" that I guess is probably what you refer to as the "general movement" looking "jittery." Fortunately, the workaround was to set my Refresh Rate to ProMotion and then back to 60Hz again. Unfortunately, it's a manual workaround–maybe one could use some AppleScript and Automator to automate it, but you'd still have to pause what you're doing to manually invoke the workaround. Apple needs to get their act together, tbh.
    – 2rs2ts
    Dec 20, 2022 at 1:08
10

This works on 10.7 (Mountain Lion) and below.

  1. Open /Applications/Utilities/Terminal.app
  2. Copy and paste the following into the terminal window and then press enter:

    defaults write com.apple.dock workspaces-swoosh-animation-off -bool YES && killall Dock
    

from hyperspace blog

2
6

There is an option in MacOS that speeds up the animation somewhat although still not instant: On your Mac, choose Apple menu > System Preferences, click Accessibility, then click Display > check "Reduce Motion".

enter image description here

3
  • 2
    Browsers can tap into this setting now and developers might disable animations on websites with this enabled, I wouldn't advise using it anymore if you just want faster spaces transitions Dec 9, 2021 at 10:01
  • 17
    Unfortunately, it does not speed up the transition — it just changes it opacity fade instead of slide. You can't interact with a new Space while animation is in progress :( Dec 16, 2021 at 13:20
  • This is so cool, fade is SO much better for me!
    – lzap
    Oct 27, 2022 at 9:48
2

Go to System Preferences > Keyboard > Keyboard Shortcuts, then click "Mission Control" in the sidebar. Scroll to the bottom of the list, and expand that "Mission Control" section. Now enable the keyboard shortcuts for all the desktops.

You can now switch to space 1, by pressing ctrl-1, space 2 by pressing ctrl-2, etc. Not only does this enable you to get to a space instantly without navigating past all the other spaces, the animation for this switch is significantly faster than the default space switching animation.

2
  • 2
    ctrl-1/ctrl-2 approach appears to be same speed for me (on macOS Mojave). But if I switch ten times in a row, 11th appears slightly faster. May 13, 2019 at 15:55
  • For me only the checkboxes for desktop 1 and desktop 2 were showing up. I had to create extra desktops, then restart system settings in order for the other checkboxes to appear. Jul 5 at 18:57
2

Yabai

If you can disable SIP, and you're using a modern version of OSX then you can accomplish this with the Yabai scripting addition.

It does this natively,

ability to switch active desktop instantly, bypassing the animation (High Sierra and Mojave)

As a side note, Yabai is open source. You can find the function responsible for the animation-less transitions here


Why does SIP need to be disabled? You can read about that here: https://github.com/koekeishiya/yabai/issues/798#issuecomment-767084471

3
  • 3
    It looks like chunkwm has been deprecated and replaced by yabai. Jul 9, 2019 at 18:02
  • 1
    Disabling SIP has some security implications. Be sure you know what you're doing before disabling SIP
    – ovidb
    Apr 11 at 14:22
  • 1
    @ovidb yea, pretty pathetic someone designed an operating system so closed that the only way to accomplish a cosmetic/UI fix is to hack Dock.app? Every other system implements transitions with hooks. But whatever, if you want this with OSX it's the only way. Apr 11 at 17:17
1

Using yabai you can achieve an instant switch between spaces. Setup yabai as described in the docs. Than install skhd and bind yabai -m space --focus next to for example crtl right like so:

ctrl - right : yabai -m space --focus next
ctrl - left : yabai -m space --focus prev
1
  • This will only work if SIP is disabled, however, disabling SIP has some security implications
    – ovidb
    Apr 11 at 14:23
0

This solution works in spite of being 10+ years old (just did it in Monterey on M1 chip). Don't forget to log out and back in.

5
  • 5
    Welcome to SuperUser! Please do not post link only answers as the linked site could be changed or deleted altogether, rendering your answer useless. Instead please quote the most important parts from the linked site and provide the source for reference only. Feb 2, 2022 at 21:50
  • It also makes judging the quality of your answer difficult. Opening a site takes time.
    – HappyFace
    Feb 3, 2022 at 9:43
  • 4
    Applied it, logged in and out, didn't do anything for me. Feb 10, 2022 at 10:24
  • 3
    This decidedly does not work on Monterey, version 12.3.1, on my M1 chip.
    – 2rs2ts
    May 10, 2022 at 21:19
  • Worked for me on M2 15 inch air. Had to kill the dock defaults write com.apple.dock workspaces-edge-delay -float 0.1 && killall Dock
    – Daniel
    Sep 4 at 9:47
-1

There is a utility app you can installed called Hyperspaces that adds features to Spaces. 6 days ago, there was an preview build from the developer which added an option to turn off Core Animation.

4
  • I installed the preview build and it doesn't appear to change the animation at all.
    – hanleyp
    Sep 11, 2009 at 4:05
  • Same here. The animation is annoying :) Nov 12, 2009 at 0:55
  • 2
    Comment by @Tony Arnold: Disabling Core Animation in Hyperspaces does so for the desktop only, not the spaces transition - sorry! I'll be allowing you to use the old Space transitions from Tiger (including no transition) in a future release of Hyperspaces.
    – Ivo Flipse
    Jan 9, 2011 at 14:34
  • "Hyperspaces does not run on more recent versions of Mac OS X, and is no longer supported" Jul 9, 2019 at 17:55

You must log in to answer this question.