如何关闭OS X上的所有动画


123

是否可以关闭OS X上的所有动画?


1
您指的是哪些动画?我可以很自信地说,不可能禁用OS X中的所有动画,但是其中一些设置(例如Dock)是可以设置的。
奥斯丁,

4
@奥斯汀//嗯。我想关闭尽可能多的动画,例如窗口。我基本上可以关闭Windows上的所有动画
月亮

1
没有禁用所有动画的全局选项,并且几乎所有内容都有动画,因此任何合理全面的回答都将过长。您是否可以提及一些特别令人反感的元素?
奥斯丁,

7
关上盖子:)
CousinCocaine 2014年

4
使用RDP或VNC时,动画非常烦人(缓慢)。苹果应该提供一个复选框来禁用所有动画-系统范围内。
NickG

Answers:


125

我只启用了其中的前四个,但是这里都是禁用我发现的动画的所有隐藏首选项。

# opening and closing windows and popovers
defaults write -g NSAutomaticWindowAnimationsEnabled -bool false

# smooth scrolling
defaults write -g NSScrollAnimationEnabled -bool false

# showing and hiding sheets, resizing preference windows, zooming windows
# float 0 doesn't work
defaults write -g NSWindowResizeTime -float 0.001

# opening and closing Quick Look windows
defaults write -g QLPanelAnimationDuration -float 0

# rubberband scrolling (doesn't affect web views)
defaults write -g NSScrollViewRubberbanding -bool false

# resizing windows before and after showing the version browser
# also disabled by NSWindowResizeTime -float 0.001
defaults write -g NSDocumentRevisionsWindowTransformAnimation -bool false

# showing a toolbar or menu bar in full screen
defaults write -g NSToolbarFullScreenAnimationDuration -float 0

# scrolling column views
defaults write -g NSBrowserColumnAnimationSpeedMultiplier -float 0

# showing the Dock
defaults write com.apple.dock autohide-time-modifier -float 0
defaults write com.apple.dock autohide-delay -float 0

# showing and hiding Mission Control, command+numbers
defaults write com.apple.dock expose-animation-duration -float 0

# showing and hiding Launchpad
defaults write com.apple.dock springboard-show-duration -float 0
defaults write com.apple.dock springboard-hide-duration -float 0

# changing pages in Launchpad
defaults write com.apple.dock springboard-page-duration -float 0

# at least AnimateInfoPanes
defaults write com.apple.finder DisableAllAnimations -bool true

# sending messages and opening windows for replies
defaults write com.apple.Mail DisableSendAnimations -bool true
defaults write com.apple.Mail DisableReplyAnimations -bool true

2
您能否让我知道我是否应该将此脚本放置在某个特定文件中或放置在启动时运行的新文件/脚本中,以禁用上述动画
GoodSp33d 2013年

5
您只需将命令粘贴到终端,它们将永久更改设置。您还必须重新打开应用程序或注销然后重新登录以应用更改。
Lri

5
在第二台显示器上的两个不同的全屏窗口之间切换时,这些机会是否有可能摆脱或加速“划过”效果?
迈克尔,

3
我们如何才能在High Sierra上进行这项工作
theonlygusti

3
大多数命令在High Sierra上
不起作用

39

如果您不想复制粘贴顶部答案中显示的每个命令,只需选择此文本,将其复制粘贴到终端并按Enter(它将立即执行所有命令而无需滚动)

defaults write -g NSAutomaticWindowAnimationsEnabled -bool false
defaults write -g NSScrollAnimationEnabled -bool false
defaults write -g NSWindowResizeTime -float 0.001
defaults write -g QLPanelAnimationDuration -float 0
defaults write -g NSScrollViewRubberbanding -bool false
defaults write -g NSDocumentRevisionsWindowTransformAnimation -bool false
defaults write -g NSToolbarFullScreenAnimationDuration -float 0
defaults write -g NSBrowserColumnAnimationSpeedMultiplier -float 0
defaults write com.apple.dock autohide-time-modifier -float 0
defaults write com.apple.dock autohide-delay -float 0
defaults write com.apple.dock expose-animation-duration -float 0
defaults write com.apple.dock springboard-show-duration -float 0
defaults write com.apple.dock springboard-hide-duration -float 0
defaults write com.apple.dock springboard-page-duration -float 0
defaults write com.apple.finder DisableAllAnimations -bool true
defaults write com.apple.Mail DisableSendAnimations -bool true
defaults write com.apple.Mail DisableReplyAnimations -bool true

要撤消更改,请将其粘贴到终端中:

defaults delete -g NSAutomaticWindowAnimationsEnabled
defaults delete -g NSScrollAnimationEnabled
defaults delete -g NSWindowResizeTime
defaults delete -g QLPanelAnimationDuration
defaults delete -g NSScrollViewRubberbanding
defaults delete -g NSDocumentRevisionsWindowTransformAnimation
defaults delete -g NSToolbarFullScreenAnimationDuration
defaults delete -g NSBrowserColumnAnimationSpeedMultiplier
defaults delete com.apple.dock autohide-time-modifier
defaults delete com.apple.dock autohide-delay
defaults delete com.apple.dock expose-animation-duration
defaults delete com.apple.dock springboard-show-duration
defaults delete com.apple.dock springboard-hide-duration
defaults delete com.apple.dock springboard-page-duration
defaults delete com.apple.finder DisableAllAnimations
defaults delete com.apple.Mail DisableSendAnimations
defaults delete com.apple.Mail DisableReplyAnimations

Mac OS X还具有对话框,例如“另存为”框(CMD + SHIFT + S)或“打印”框(CMD + P)。您可以使用以下命令来调整所有这些框的显示速度:

瞬间:

defaults write NSGlobalDomain NSWindowResizeTime .001

快速:

defaults write NSGlobalDomain NSWindowResizeTime .1

默认值(0.2秒):

defaults delete NSGlobalDomain NSWindowResizeTime

1 = 1秒。要查看差异,您必须重新启动终端程序等应用程序,并通过按CMD + S(例如“保存”)来召唤对话框。您可以在defaults-write.com中找到更多命令行调整


6
在bash中,以#开头的行将被忽略,因此从第一个答案复制整个代码块将与此完全相同。
grg

2
是的,但是此文本更易于复制,因为无需滚动即可完成。
大卫·洛佩兹

因此,如果我们想还原更改,我们只需要否定每个布尔值并重新运行它即可?
vach 2015年

要反转布尔值(是/否),可以。要反转浮点数,您需要知道默认值是多少。您可以通过执行“默认读取<domain> <key>”将默认值打印给您,即:defaults read -g NSWindowResizeTime打印0.001(在我的情况下)。要获取帮助defaults,请在终端中运行。我将使用复制粘贴列表更新答案,该列表会将所有内容恢复为默认值。世界很小,不是瓦加根吗?:)
David Lopez 2015年

15

动画在OS X中无处不在,并且不可能通过一个全局设置禁用所有动画,这使这成为一个非常复杂的问题,无法完全回答。

我建议您在发现烦人的动画时尝试一次禁用一项功能。检查系统偏好设置以启动。例如,可以在系统偏好设置-> Dock中关闭Dock放大动画。

另外,请查看TinkerTool,它使您可以执行以下操作:

  • 在Finder中打开文件时禁用动画效果
  • 在邮件中禁用动画效果
  • 在任务控制中禁用动画效果
  • 隐藏或显示Dock时禁用动画
  • 在启动板中切换页面时禁用淡入和淡出效果以及动画
  • 在打开的窗口中禁用动画
  • 打开信息面板或桌面图标时禁用动画效果
  • 选择信息类别时禁用动画效果
  • 加快打开和关闭工作表的动画

如果有一个确实让您感到烦恼的动画,并且您不知道如何禁用它,请尝试在此处针对该特定问题发布一个单独的问题,您将获得快速,准确的响应。(而且,作为一个很好的副作用,您和帮助您的人都会以这种方式获得更多的销售代表。)


8

除上述答案外,您还可以使用Secrets。Secrets是开源的PrefPane,可让您为Mac上的各种程序设置各种隐藏选项。

机密信息

更新:主站点已关闭,该项目似乎已死。如果您仍想使用原始版本,则这里是Google代码档案。


1
该链接已消失...有人可以上传该应用程序吗?
jeet.chanchawat

2
秘密死了。后端处于离线状态,因此没有更多更新。
Cyber​​Skull

5

如果您对Terminal保持警惕,Mountain Tweaks是另一个有用的GUI,可以关闭,打开和调整Lion和Mountain Lion的行为。


1

这个答案,包装成一个shell脚本,允许您在状态之间进行切换。

例子

$ animations_osx.sh 
animations disabled - reboot may be required

$ animations_osx.sh
animations enabled - reboot may be required

$ animations_osx.sh OFF 
animations disabled - reboot may be required

$ animations_osx.sh ON 
animations enabled - reboot may be required

animations_osx.sh

FILE=/tmp/__ez_file_$(date +%s) 

function show_help()
{
  IT=$(CAT <<EOF

  usage: {ON|OFF}

  enables or disables animations in osx. 
  if you don't pass any arguments, it'll toggle between enabled and disabled.

  e.g. 

  ON  => All animations are enabled
  OFF => All animations are disabled
  )
  echo "$IT"
  exit
}

if [ "$1" == "help" ]
then
  show_help
fi


# returns the opposite of the current state for easy toggling
function getNewState()
{
  defaults read com.apple.dock expose-animation-duration  &> $FILE
  VAL=$(cat $FILE)
  rm $FILE
  if [ "$VAL" == "0" ]
  then
    echo "ON"
  else
    echo "OFF"
  fi
}

if [ -z "$1" ]
then
  OP=$(getNewState)
else
  OP=$1
fi

if [ "$OP" == "OFF" ]
then
  defaults write -g NSAutomaticWindowAnimationsEnabled -bool false
  defaults write -g NSScrollAnimationEnabled -bool false
  defaults write -g NSWindowResizeTime -float 0.001
  defaults write -g QLPanelAnimationDuration -float 0
  defaults write -g NSScrollViewRubberbanding -bool false
  defaults write -g NSDocumentRevisionsWindowTransformAnimation -bool false
  defaults write -g NSToolbarFullScreenAnimationDuration -float 0
  defaults write -g NSBrowserColumnAnimationSpeedMultiplier -float 0
  defaults write com.apple.dock autohide-time-modifier -float 0
  defaults write com.apple.dock autohide-delay -float 0
  defaults write com.apple.dock expose-animation-duration -float 0
  defaults write com.apple.dock springboard-show-duration -float 0
  defaults write com.apple.dock springboard-hide-duration -float 0
  defaults write com.apple.dock springboard-page-duration -float 0
  defaults write com.apple.finder DisableAllAnimations -bool true
  defaults write com.apple.Mail DisableSendAnimations -bool true
  defaults write com.apple.Mail DisableReplyAnimations -bool true
  echo "animations disabled - reboot may be required"
  exit;
fi

if [ "$OP" == "ON" ]
then
  defaults delete -g NSAutomaticWindowAnimationsEnabled &> $FILE
  defaults delete -g NSScrollAnimationEnabled &> $FILE
  defaults delete -g NSWindowResizeTime &> $FILE
  defaults delete -g QLPanelAnimationDuration &> $FILE
  defaults delete -g NSScrollViewRubberbanding &> $FILE
  defaults delete -g NSDocumentRevisionsWindowTransformAnimation &> $FILE
  defaults delete -g NSToolbarFullScreenAnimationDuration &> $FILE
  defaults delete -g NSBrowserColumnAnimationSpeedMultiplier &> $FILE
  defaults delete com.apple.dock autohide-time-modifier &> $FILE
  defaults delete com.apple.dock autohide-delay &> $FILE
  defaults delete com.apple.dock expose-animation-duration &> $FILE
  defaults delete com.apple.dock springboard-show-duration &> $FILE
  defaults delete com.apple.dock springboard-hide-duration &> $FILE
  defaults delete com.apple.dock springboard-page-duration &> $FILE
  defaults delete com.apple.finder DisableAllAnimations &> $FILE
  defaults delete com.apple.Mail DisableSendAnimations &> $FILE
  defaults delete com.apple.Mail DisableReplyAnimations &> $FILE
  rm $FILE
  echo "animations enabled - reboot may be required"
  exit;
fi

show_help
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.