Перенос окон между рабочими столами
Почему DeskMemory не переносит окна на нужный рабочий стол (Space) на Apple Silicon и как это включить, если вы готовы пойти на компромисс.
Почему это не работает
Перемещение окна на другой Space через код требует приватного, недокументированного API macOS. На Apple Silicon (в отличие от Intel) System Integrity Protection (SIP) блокирует этот API даже для приложений с полным доступом к Универсальному доступу - вызов формально завершается успехом, но окно физически не перемещается.
Это не ошибка DeskMemory - то же самое ограничение затрагивает и другие инструменты для работы с окнами и рабочими столами на macOS. Это известное ограничение Apple Silicon: приватный API рабочих столов есть, но SIP его блокирует.
Что можно сделать
Частично отключить SIP. Это системная настройка безопасности macOS, а не что-то, что приложение может включить само - процедура требует загрузки в Recovery Mode и выполняется вручную.
Как включить (Apple Silicon, macOS 13 и новее)
- Полностью выключите Mac.
- Включите его, удерживая кнопку питания, пока не появится надпись «Загрузка параметров запуска» - выберите «Параметры», затем «Продолжить», чтобы попасть в Recovery Mode.
- В строке меню откройте «Утилиты» → «Терминал».
-
Выполните:
csrutil enable --without fs --without debug --without nvram sudo nvram boot-args=-arm64e_preview_abi - Перезагрузите Mac в обычном режиме.
Команды приведены для macOS 13.x и новее. Перед выполнением проверьте их ещё раз - обновление macOS может изменить требования к настройкам SIP.
После восстановления Mac у Apple
Сервисные центры Apple переустанавливают систему и включают SIP обратно - если после ремонта перенос между рабочими столами снова перестал работать, просто повторите шаги выше.