← دسک‌مموری

جابه‌جایی پنجره‌ها بین Spaces

چرا دسک‌مموری نمی‌تواند پنجره‌ها را به Space (دسکتاپ مجازی) درست در Apple Silicon منتقل کند، و اگر حاضرید این مصالحه را بپذیرید چگونه می‌توان آن را فعال کرد.

چرا کار نمی‌کند

جابه‌جایی برنامه‌ای یک پنجره به Space دیگر به یک API خصوصی و مستندنشدهٔ macOS نیاز دارد. در Apple Silicon (برخلاف اینتل)، System Integrity Protection (SIP) این API را حتی برای برنامه‌هایی با دسترسی کامل Accessibility مسدود می‌کند - فراخوانی موفقیت گزارش می‌دهد، اما پنجره واقعاً جابه‌جا نمی‌شود.

این یک باگ در دسک‌مموری نیست - همین محدودیت روی سایر ابزارهای مدیریت پنجره و دسکتاپ در macOS هم تأثیر می‌گذارد. این یک محدودیت شناخته‌شدهٔ Apple Silicon است: API خصوصی Spaces وجود دارد، اما SIP آن را بی‌اثر می‌کند.

چه کاری می‌توانید انجام دهید

غیرفعال‌سازی جزئی SIP. این یک تنظیم امنیتی سیستمی macOS است، نه چیزی که یک برنامه بتواند خودش روشن کند - این کار نیازمند بوت به Recovery Mode و اجرای مراحل به‌صورت دستی است.

پیش از ادامه غیرفعال‌سازی جزئی SIP سطح محافظت سیستم شما در برابر بدافزار و تغییرات غیرمجاز را کاهش می‌دهد. این کار را فقط در صورتی انجام دهید که این مصالحه را درک می‌کنید. دسک‌مموری بدون این کار هم به‌طور عادی کار می‌کند (به‌خاطر سپردن و بازگرداندن موقعیت/اندازهٔ پنجره) - تنها چیزی که بدون غیرفعال‌سازی جزئی SIP از دست می‌رود، جابه‌جایی پنجره بین Spaces است.

چگونه آن را فعال کنیم (Apple Silicon، macOS 13 و بالاتر)

  1. مک خود را کاملاً خاموش کنید.
  2. آن را روشن کنید و دکمهٔ پاور را نگه دارید تا عبارت «در حال بارگذاری گزینه‌های راه‌اندازی» ظاهر شود - «Options» و سپس «Continue» را انتخاب کنید تا وارد Recovery Mode شوید.
  3. از نوار منو، «Utilities» ← «Terminal» را باز کنید.
  4. اجرا کنید:
    csrutil enable --without fs --without debug --without nvram
    sudo nvram boot-args=-arm64e_preview_abi
  5. مک را به‌طور عادی مجدداً راه‌اندازی کنید.

این دستورها برای macOS نسخهٔ ۱۳ و بالاتر معتبرند. پیش از اجرا دوباره بررسی‌شان کنید، زیرا یک به‌روزرسانی macOS ممکن است تنظیمات لازم SIP را تغییر دهد.

پس از تعمیر توسط اپل

مراکز خدمات اپل macOS را دوباره نصب کرده و SIP را دوباره فعال می‌کنند - اگر پس از تعمیر، جابه‌جایی پنجره بین Spaces دوباره کار نکرد، فقط مراحل بالا را تکرار کنید.