حتى الآن، ما يزال macOS يفتقر إلى مفتاح واضح وموثوق ومدعوم رسميًا لإيقاف رسوم الانتقال (Animation) الخاصة بـ Spaces بشكل كامل عند التبديل بين “تطبيقات ملء الشاشة (Full‑Screen)” و“سطح المكتب/النوافذ العادية”. قد يبدو هذا تفصيلاً بسيطًا، لكنه مع الاستخدام الطويل يصبح مُعذِّبًا: المسألة ليست مجرد “ستايل بصري”، بل إن النظام يجرّ انتباه المستخدم بالقوة إلى انتقال لا يمكن إلغاؤه. لمن يبحث عن زمن استجابة منخفض، أو يبدّل كثيرًا بـ 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 غير نشط (inactive Space)، يتم تجاوز رسوم Space الخاصة بـ macOS. وتذكر الوثائق أيضًا أنه إن كنت لا تستخدم scripting addition، فعندها ينبغي تفعيل هذا الخيار؛ لأن scripting addition يحقق قدرة مشابهة وبشكل أكثر robust (أكثر صلابة/اعتمادية). بمعنى آخر: إذا كان مطلبك الأساسي هو الإبقاء على ملء الشاشة الأصلي، والإبقاء على سلوك Cmd‑Tab، لكن حذف رسوم الانتقال—فـ yabai ما يزال الأداة الأقرب لجوهر المشكلة.
فكرة AeroSpace هي الالتفاف على Spaces الأصلية في macOS.
AeroSpace لا يحاول ترقيع Spaces الخاصة بـ Apple بعمق. بدلًا من ذلك يقدم نموذج workspaces خاصًا به: نوافذ الـ workspace غير النشطة تُنقل خارج المنطقة المرئية، وعند العودة يتم إرجاعها. فائدة ذلك مباشرة: لا حاجة لتعطيل SIP، والتبديل بين workspaces يكون بطبيعته بلا رسوم Spaces الأصلية، والنظام ككل أنظف وأقل عرضة لأن تكسره تحديثات النظام.
لكن الكلفة واضحة أيضًا: طريقة الاستخدام الموصى بها في AeroSpace هي الإبقاء على Space واحد فقط داخل macOS، وعدم الاعتماد بعمق على سير عمل Mission Control/Spaces الأصلي. إذا واصلت استخدام زرّ اللون الأخضر لملء الشاشة الأصلي، فذلك التطبيق سيذهب إلى full‑screen Space الأصلي في macOS؛ وعند القفز إليه عبر Cmd‑Tab قد تُفعِّل مجددًا آلية Apple الخاصة بتبديل ملء الشاشة/Spaces. AeroSpace ليس مصممًا لإصلاح هذا المسار، بل ليجعلك قدر الإمكان لا تسلك هذا المسار أساسًا.
إذًا كيف تختار
إذا كنت مصرًّا على استخدام ملء الشاشة الأصلي في macOS، وكانت مشكلتك الأساسية هي رسوم Cmd‑Tab عند التبديل بين تطبيقات ملء الشاشة والتطبيقات العادية، فالأولوية لـ yabai. الحل الأدنى هو تشغيل yabai فقط وضبط skip_window_focus_animation on، وليس بالضرورة أن تحتاج skhd. skhd أداة ربط مفاتيح (keyboard bindings)، وليست جوهر إزالة الرسوم.
إذا كنت مستعدًا للتخلي عن ملء الشاشة الأصلي، وتغيير سير العمل إلى “تعظيم نافذة عادية + 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
هذا أقل كلفة لأنه بلا عملية مقيمة (daemon) تعمل دائمًا. لكنه لا يحل بشكل كامل رسوم تبديل Spaces الأصلية لملء الشاشة.
المشكلة الحقيقية عند Apple
أكثر ما يبعث على السخرية هنا أن المستخدم لا يطلب ميزة معقدة، بل يطلب مفتاحًا واضحًا:
عندما يفعّل المستخدم Reduce Motion (تقليل الحركة)، أو يفعّل بشكل منفصل “Disable Space transition animations”، يجب أن يسمح Cmd‑Tab والنقر على Dock وMission Control والتبديل بين تطبيقات ملء الشاشة وسطح المكتب العادي بأن يكتمل فورًا، بدون فرض تشغيل الرسوم.
هذه ليست مسألة ذوق؛ إنها مسألة تحكّم. الرسوم بالنسبة لبعض المستخدمين جماليات، وبالنسبة لآخرين هي تأخير وتشتيت ودوار وخسارة إنتاجية. macOS يسمح للمستخدم بتعديل تفاصيل صغيرة لا حصر لها، لكنه في هذا التفاعل عالي التكرار لا يعطي خيار الإيقاف الكامل، ويجبر المستخدم على الاختيار بين yabai وscripting addition وSIP أو تغيير سير العمل بالكامل. هذا تصميم غير منطقي للغاية.
الحالة المثالية يجب أن تكون بسيطة: Apple توفر خيار إعداد رسميًا ومستقرًا وبدون آثار جانبية. يستطيع المستخدم الإبقاء على ملء الشاشة الأصلي وCmd‑Tab الأصلي وSpaces الأصلية، وفي الوقت نفسه إيقاف رسوم التبديل بالكامل. لا تجعل “تقليل الحركة” تسوية ضبابية، ولا تترك أدوات الطرف الثالث تتحمل عبء “التحكم” الذي كان ينبغي للنظام أن يوفره.
مرجع:
- صفحة أحدث إصدار macOS لدى Apple: Find out which macOS your Mac is using - Apple Support
- صفحة إرسال ملاحظات macOS لدى Apple: 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: AeroSpace Guide