← DeskMemory

Перенос окон между рабочими столами

Почему 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 и выполняется вручную.

Прежде чем продолжить Частичное отключение SIP снижает уровень защиты системы от вредоносного ПО и несанкционированных изменений. Делайте это осознанно, только если понимаете последствия. DeskMemory продолжает нормально работать (запоминание и восстановление позиции/размера окна) и без этого - без частичного отключения SIP теряется только перенос между рабочими столами.

Как включить (Apple Silicon, macOS 13 и новее)

  1. Полностью выключите Mac.
  2. Включите его, удерживая кнопку питания, пока не появится надпись «Загрузка параметров запуска» - выберите «Параметры», затем «Продолжить», чтобы попасть в Recovery Mode.
  3. В строке меню откройте «Утилиты» → «Терминал».
  4. Выполните:
    csrutil enable --without fs --without debug --without nvram
    sudo nvram boot-args=-arm64e_preview_abi
  5. Перезагрузите Mac в обычном режиме.

Команды приведены для macOS 13.x и новее. Перед выполнением проверьте их ещё раз - обновление macOS может изменить требования к настройкам SIP.

После восстановления Mac у Apple

Сервисные центры Apple переустанавливают систему и включают SIP обратно - если после ремонта перенос между рабочими столами снова перестал работать, просто повторите шаги выше.