اول فرق X و Wayland رو بفهمیم. تو دنیای X داستان اینطوری بود:
▫️ یه X server داشتیم که کارش صحبت با کارت گرافیک و ورودیها بود و پنجرهها رو روی صفحه میکشید.تو X اینها میتونستن توی یک برنامه هم جمع بشن. مثلاً KWin یا Mutter روی X هم WM هستن هم compositing manager. یعنی ترکیبشون ممنوع نبود، فقط معماری طوری بود که جدا بودنشون هم ممکن و رایج بود.
▫️ یه Window Manager جدا که تصمیم میگرفت پنجرهها کجا باشن، فوکوس دست کی باشه، تایل بشن یا شناور، دکمهها چه رفتاری داشته باشن و …
▫️ یه compositor (اختیاری) مثل compton یا picom که تصویر نهایی دسکتاپ رو با سایه و شفافیت و افکتها ترکیب میکرد.
💠 توی Wayland چی عوض شده؟
اینجا از دید پروتکل، همیشه یک سرور Wayland وجود داره که همون چیزیه که بهش میگیم compositor. این سرور:
▫️ مستقیماً با DRM/KMS و کارت گرافیک کار میکنه.
▫️ ورودیها (کیبورد، موس، تاچ و …) رو دریافت میکنه.
▫️ بافرهایی که اپها رندر کردن رو میگیره.
▫️ تصمیم میگیره هر سطح (surface) کجا و چطوری روی کدوم مانیتور نمایش داده بشه.
▫️ در عمل، همون کارهای یک Window Manager رو هم مثل فوکوس، تایلینگ، فلو، فولاسکرین، ورکاسپیسها و … انجام میده.
چرا نمیگیم Wayland Window Manager؟
▫️ از دید فنی، نقش اصلی این برنامه کامپوزیت کردن بافرها و ساختن تصویر نهایی خروجه؛ مدیریت پنجره فقط یک بخش از ماجراست.🔘 @linux_exp | #wayland #x11 #wm
▫️ پروتکل Wayland حول این کامپوزیتور طراحی شده و مرکز مدیریت گرافیکه که هم با سختافزار ارتباط میگیره، هم با اپها، هم سیاستهای پنجرهها رو اجرا میکنه.
▫️ چیزی بهعنوان WM مستقل که فقط سیاست بده به شکل استاندارد توی پروتکل وجود نداره؛ اگر هم بخشی از منطق به یه پروسۀ دیگه واگذار بشه، باز هم از نگاه Wayland، تصمیمگیرندۀ نهایی همون compositor هست و اون یکی فقط helper حساب میشه.