macOS до сих пор не предлагает понятного, надёжного, официально поддерживаемого переключателя, который полностью отключал бы анимацию Spaces при переходе между «полноэкранными приложениями» и «обычным рабочим столом/обычными окнами». На первый взгляд это мелочь, но при длительном использовании она реально выматывает: это не просто вопрос визуального стиля — система насильно утаскивает внимание пользователя в кусок переходной анимации, который нельзя отменить. Для тех, кто ценит минимальную задержку, часто пользуется Cmd-Tab, легко сбивается из‑за анимаций или просто не хочет их видеть, это какое-то совершенно больное дизайнерское решение. Пользователь уже включил «Уменьшить движение», уже явно сказал «не хочу анимаций», а система всё равно упорно сохраняет этот эффект переключения — это решение откровенно антипользовательское.
По состоянию на 2026-05-06, на публичной странице последняя стабильная версия — macOS Tahoe 26.4.1. У Apple есть опция «Уменьшить движение», а также некоторые системные defaults, которые уменьшают анимации окон, Dock, Finder, Mission Control. Но ключевое ограничение здесь такое: эти настройки лишь сокращают часть эффектов, но не позволяют полностью отключить нативную анимацию переключения между Spaces/полноэкранными приложениями.
Принципиальная разница между двумя подходами
Сейчас наиболее реалистичные варианты — это yabai и AeroSpace. Но они решают проблему на разных уровнях.
Идея yabai — перехватить или «подлатать» нативный механизм окон/Spaces в macOS.
Обычные возможности yabai опираются на Accessibility API — для управления окнами, фокусом, раскладкой и т. п. Более глубокие возможности по Spaces раньше в основном зависели от scripting addition — то есть от инъекции расширения в Dock.app, чтобы управлять нативным поведением Spaces. Именно поэтому раньше yabai часто «шёл в комплекте» с «частичным отключением SIP».
Для требования «при Cmd-Tab из обычного рабочего стола в полноэкранное приложение не должно быть анимации» yabai подходит точнее, потому что он как раз работает с нативным путём фокуса Space в macOS. В документации новых версий yabai есть даже такой параметр:
yabai -m config skip_window_focus_animation on
Его описание как раз про это: когда фокусируется приложение или окно на неактивном Space, обходить анимацию Spaces в macOS. В документации также сказано, что включать это стоит как раз если вы не используете scripting addition; scripting addition обеспечивает аналогичную возможность и при этом более robust. Иными словами: если ваш главный запрос — сохранить нативный full-screen, сохранить поведение Cmd-Tab, но убрать анимацию переключения, то yabai остаётся инструментом, который ближе всего к сути проблемы.
Идея AeroSpace — обойти нативные Spaces в macOS.
AeroSpace не пытается глубоко «чинить» Spaces от Apple. Он предлагает собственную модель workspace: окна неактивного workspace просто сдвигаются за пределы видимой области, а при возврате восстанавливаются. Плюс очевиден: не нужно отключать SIP, переключение workspace по природе не включает нативную анимацию Space, в целом получается «чище» и менее уязвимо к поломкам после обновлений системы.
Но и цена столь же ясная: рекомендуемый способ использования AeroSpace — оставить только один macOS Space и больше не полагаться глубоко на нативный workflow Mission Control/Spaces. Если вы продолжаете пользоваться нативным полноэкранным режимом через зелёную кнопку, то приложение всё равно уедет в нативный full-screen Space macOS; когда Cmd-Tab перепрыгнет туда, всё ещё может сработать тот самый механизм переключения full-screen/Space от Apple. AeroSpace не для того, чтобы чинить этот путь — он для того, чтобы вы по возможности вообще не ходили по этому пути.
Так как выбрать
Если вы принципиально хотите пользоваться нативным полноэкранным режимом macOS и основной болевой пункт — анимация при Cmd-Tab между полноэкранными и обычными приложениями, тогда в первую очередь выбирайте yabai. Минимальный вариант — просто запускать yabai и выставить skip_window_focus_animation on; skhd может и не понадобиться. skhd — это инструмент для привязки клавиш, а не ключ к отключению анимаций.
Если вы готовы отказаться от нативного full-screen и перестроить workflow на «максимизированные обычные окна + tiling/workspace», то AeroSpace будет чище. Он обходит самую упрямую «анимационную» дорожку Apple, не требует отключения SIP и имеет ниже стоимость долгосрочной поддержки.
Если вам нужно лишь уменьшить обычные системные анимации, можно включить «Уменьшить движение» в настройках, плюс добавить несколько defaults:
defaults write -g NSAutomaticWindowAnimationsEnabled -bool false
defaults write -g NSScrollAnimationEnabled -bool false
defaults write -g NSWindowResizeTime -float 0.001
defaults write com.apple.finder DisableAllAnimations -bool true
defaults write com.apple.dock expose-animation-duration -float 0
killall Finder
killall Dock
Это самый «дешёвый» вариант по накладным расходам, потому что не требует резидентного процесса. Но он не решает полностью анимацию нативного переключения полноэкранных Spaces.
Настоящая проблема — в Apple
Самое абсурдное здесь то, что пользователи не просят какую-то сложную функциональность — они просят лишь чёткий переключатель:
Когда пользователь включает Reduce Motion, или отдельно включает “Disable Space transition animations”, переключения через Cmd-Tab, клики по Dock, Mission Control, переходы между полноэкранными приложениями и обычным рабочим столом должны иметь возможность завершаться мгновенно — без принудительного проигрывания анимации.
Это не вопрос эстетики — это вопрос контроля. Для части пользователей анимации — это красота, для другой части — это задержка, помехи, укачивание и потеря эффективности. macOS позволяет настраивать массу мелочей, но в таком высокочастотном взаимодействии не даёт возможности полностью отключить эффект, вынуждая выбирать между yabai, scripting addition, SIP или полной сменой workflow. Это крайне неразумный дизайн.
Идеальная ситуация должна быть очень простой: Apple даёт официальный, стабильный, без побочных эффектов пункт настройки. Пользователь может сохранить нативный full-screen, нативный Cmd-Tab, нативные Spaces — и при этом полностью отключить анимацию переключения. Не превращайте «Уменьшить движение» в расплывчатый компромисс и не перекладывайте на сторонние инструменты тот контроль, который должна предоставлять сама система.
参考:
- Apple 最新 macOS 版本页面:Find out which macOS your Mac is using - Apple Support
- Apple macOS 反馈页面:Feedback - macOS - Apple
- yabai 文档:yabai/doc/yabai.asciidoc at master · asmvik/yabai · GitHub
- AeroSpace:GitHub - nikitabobko/AeroSpace: AeroSpace is an i3-like tiling window manager for macOS · GitHub
- AeroSpace Guide:AeroSpace Guide