Jak wyłączyć wszystkie animacje w OS X

123

Czy można wyłączyć wszystkie animacje w systemie OS X?

Księżyc
źródło
1
Do jakich animacji się odnosisz? Mogę powiedzieć z całkowitą pewnością, że nie można wyłączyć wszystkich animacji w OS X, ale dla niektórych z nich istnieją ustawienia (na przykład Dock).
Austin
4
@Austin // Um..Chcę wyłączyć jak najwięcej animacji, takich jak okna. Mogę wyłączyć w zasadzie wszystkie animacje w oknach.
Księżyc
1
Nie ma globalnej opcji wyłączania wszystkich animacji, a animacja jest prawie we wszystkim , więc każda rozsądnie wyczerpująca odpowiedź byłaby nieuzasadniona długa. Czy jest kilka elementów, o których mógłbyś wspomnieć, które są dla Ciebie szczególnie obraźliwe?
Austin
7
zamknij wieko :)
CousinCocaine
4
Animacja jest bardzo denerwująca (powolna) przy korzystaniu z RDP lub VNC. Apple powinien zapewnić jedno pole wyboru, aby wyłączyć wszystkie animacje - w całym systemie.
NickG

Odpowiedzi:

125

Włączyłem tylko pierwsze cztery z nich, ale tutaj są wszystkie ukryte preferencje dotyczące wyłączania animacji, które znalazłem.

# 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
Lri
źródło
2
Czy możesz dać mi znać, czy powinienem umieścić ten skrypt w jakimś konkretnym pliku lub w nowym pliku / skrypcie, który działa przy uruchomieniu, aby wyłączyć powyższe animacje
GoodSp33d,
5
Możesz po prostu wkleić polecenia do terminala, a one na stałe zmienią ustawienia. Musisz także ponownie otworzyć aplikacje lub wylogować się i zalogować ponownie, aby zastosować zmiany.
Lri
5
czy jest jakaś szansa, że ​​którykolwiek z nich pozbędzie się lub przyspieszy efekt „przeciągnięcia palcem” podczas tabulacji między dwoma różnymi pełnoekranowymi oknami na drugim monitorze?
Michael
3
Jak możemy sprawić, by działało to w High Sierra
theonlygusti
3
Większość poleceń nie działa w High Sierra
QMaster
39

Jeśli nie chcesz kopiować i wklejać każdego z poleceń pokazanych w górnej odpowiedzi, po prostu zaznacz ten tekst, skopiuj i wklej go do terminala i naciśnij klawisz Enter (wykona wszystkie polecenia jednocześnie bez konieczności przewijania)

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

Aby cofnąć zmiany, wklej to do terminala:

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 ma również okna dialogowe, takie jak „Zapisz jako” (CMD + SHIFT + S) lub „Drukuj” (CMD + P). Możesz dostosować szybkość, z jaką wszystkie te pola pojawiają się, używając następujących poleceń:

Natychmiastowy:

defaults write NSGlobalDomain NSWindowResizeTime .001

Szybki:

defaults write NSGlobalDomain NSWindowResizeTime .1

Domyślnie (0,2 sekundy):

defaults delete NSGlobalDomain NSWindowResizeTime

1 = 1 sekunda. Aby zobaczyć różnicę, musisz ponownie uruchomić aplikację, taką jak Terminal, i przywołać okno dialogowe, naciskając na przykład CMD + S („Zapisz”). Więcej poprawek do wiersza poleceń można znaleźć na stronie defaults-write.com

David Lopez
źródło
6
Linie rozpoczynające się od # są ignorowane w bash, więc skopiowanie całego bloku kodu z pierwszej odpowiedzi i tak zrobi dokładnie to samo.
grg
2
To prawda, ale ten tekst jest łatwiejszy do skopiowania, ponieważ nie trzeba przewijać.
David Lopez,
więc jeśli chcemy cofnąć zmiany, musimy po prostu zanegować wszystkie wartości logiczne i uruchomić to ponownie?
vach
Aby odwrócić logiczne wartości (prawda / fałsz), tak. Aby odwrócić liczby zmiennoprzecinkowe, musisz wiedzieć, jakie były wartości domyślne. Możesz wydrukować ustawienia domyślne, wykonując polecenie „defaults read <domain> <key>”, tj .: defaults read -g NSWindowResizeTimedrukuje 0.001(w moim przypadku). Aby uzyskać pomoc, uruchom defaultsw terminalu. Będę aktualizować swoją odpowiedź za pomocą listy kopiuj-wklej, która przywróci wszystko do wartości domyślnych. Świat jest mały, czy to nie Vachagan? :)
David Lopez
15

Animacja jest wszędzie w systemie OS X i nie można wyłączyć wszystkich animacji za pomocą jednego globalnego ustawienia, co sprawia, że ​​odpowiedź na to pytanie jest bardzo skomplikowana.

Radzę spróbować wyłączać rzeczy pojedynczo, gdy znajdziesz denerwujące animacje. Sprawdź Preferencje systemowe, aby rozpocząć. Na przykład animację powiększenia Docka można wyłączyć w Preferencjach systemowych -> Dock.

Sprawdź także TinkerTool , który pozwala wykonać następujące czynności:

  • Wyłącz efekt animacji podczas otwierania plików w Finderze
  • Wyłącz efekt animacji w programie Mail
  • Wyłącz efekt animacji w Kontroli misji
  • Wyłącz animację podczas ukrywania lub pokazywania Docka
  • Wyłącz efekt ściemniania i ściemniania oraz animację podczas przełączania między stronami w Launchpad
  • Wyłącz animację podczas otwierania okien
  • Wyłącz efekt animacji podczas otwierania paneli informacyjnych lub ikon na pulpicie
  • Wyłącz efekt animacji podczas wybierania kategorii informacji
  • Przyspiesz animację otwierania i zamykania arkuszy

Jeśli istnieje animacja, która naprawdę Cię boli i nie możesz dowiedzieć się, jak ją wyłączyć, spróbuj opublikować osobne pytanie tutaj w Ask Different na ten konkretny problem - otrzymasz szybką i dokładną odpowiedź. (I jako miły efekt uboczny, zarówno ty, jak i ludzie, którzy ci pomagają, zarobisz w ten sposób więcej przedstawicieli.)

Austin
źródło
8

Oprócz powyższych odpowiedzi możesz także używać Sekretów . Secrets to PrefPane o otwartym kodzie źródłowym, który umożliwia ustawianie wszelkiego rodzaju ukrytych opcji dla wszystkich rodzajów programów na komputerze Mac.

Secrets PrefPane

Aktualizacja : Strona główna nie działa, a projekt wygląda na martwy. Oto Archiwum Google Code, jeśli nadal chcesz korzystać z wersji waniliowej.

CyberSkull
źródło
1
Ten link jest martwy ... Czy ktoś może załadować aplikację?
jeet.chanchawat
2
Sekrety nie żyją. Backend jest offline, więc nie ma więcej aktualizacji.
CyberSkull
5

Jeśli obawiasz się terminalu, Mountain Tweaks to kolejny pomocny GUI do wyłączania, włączania i w inny sposób poprawiania zachowania Lion i Mountain Lion.

Niż
źródło
1

Ta odpowiedź jest zawarta w skrypcie powłoki, który pozwala przełączać się między stanami.

przykłady

$ 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
Brad Parks
źródło