بعد أربعة أشهر من التطوير، تم إطلاق الإصدار المستقر من بروتوكول Wayland 1.26، وآلية الاتصال بين العمليات، والمكتبات. يتوافق الإصدار 1.26 مع الإصدارات السابقة 1.x على مستوى واجهة برمجة التطبيقات (API) وواجهة التطبيق الثنائية (ABI)، ويحتوي بشكل أساسي على إصلاحات للأخطاء وتحديثات طفيفة للبروتوكول. يخضع عمل المشروع لترخيص MIT. أما خادم Weston المرجعي المركب، الذي يوفر التعليمات البرمجية وأمثلة عملية لاستخدام Wayland في بيئات سطح المكتب والحلول المدمجة، فيجري تطويره في دورة تطوير منفصلة.
التغييرات الرئيسية في البروتوكول:
- تمت إضافة حدث wl_pointer.warp، والذي يسمح لك بتلقي إشعارات حول الموضع الجديد للمؤشر دون التعامل مع حدث wl_pointer.motion الناتج عن نشاط المستخدم.
- أُضيف طلب wl_fixes.ack_global_remove، المصمم لإرسال تأكيد إلى مدير النظام المركب يفيد بأن العميل قد توقف عن معالجة الحدث، وذلك لتجنب حدوث تضارب في البيانات عند إزالة الأحداث العامة. بعد تلقي التأكيد من جميع العملاء، يستطيع مدير النظام المركب إزالة المعالج المرتبط بالحدث من جانبه.
- تمت إضافة وظيفة wl_display_remove_socket_fd() لإزالة المقابس التي تمت إضافتها مسبقًا عبر استدعاء wl_display_add_socket_fd().
- في وضع تصحيح الأخطاء WAYLAND_DEBUG، يتم تسجيل الوقت بتنسيق "HH:MM:ss.xxxxxx"، مما يبسط تحليل السجل ومقارنته.
إضافات البروتوكول التي تمت إضافتها منذ الإصدار السابق من Wayland والتي تُكمل بروتوكول Wayland الأساسي ويتم توفيرها في مجموعة Wayland-Protocols منفصلة:
- xx-fractional-scale — يُستخدم لتغيير مقياس نظام الإحداثيات المنطقية، حيث تُحدد القيم كأعداد صحيحة، لتحسين دقة تحديد المواقع وزيادة دقة الإحداثيات المنطقية وصولاً إلى مستوى البكسل الفردي. تحل هذه الميزة مشكلة الدقة المحدودة لنظام الإحداثيات المنطقية، والتي لا تكفي لتحديد المواقع على مستوى البكسل الفردي، وهو أمر ضروري للتنفيذ الكامل لتغيير المقياس الجزئي.
- xx-cutouts — للحصول على معلومات حول الفتحات الموجودة على الشاشة (على سبيل المثال، المنطقة الموجودة أسفل الكاميرا الأمامية على شاشة الهاتف الذكي).
- مناطق xx — لإنشاء وإضافة نوافذ من المستوى الأعلى إلى "مناطق" — وهي بيئات ذات مساحة إحداثيات خاصة بها. يسمح البروتوكول بترتيب منطقي للنوافذ، حيث يتم وضع كل نافذة بالنسبة إلى كل نافذة أخرى.
- xx-keyboard-filter — لتمكين العميل من اعتراض أحداث لوحة المفاتيح المحددة، أو تعديل أحداث الإدخال، أو منع تمرير أحداث معينة إلى سطح Wayland المُركّز عليه.
- تمت إضافة بروتوكول xdg-session-management إلى فئة التجهيز، مما يوفر القدرة على استعادة حالة وموضع النوافذ من جلسة متقطعة في بيئات Wayland، على سبيل المثال بعد تعطل خادم مركب أو تطبيق.
- تم تحديث بروتوكول "linux-dmabuf" لدعم أنظمة متعددة وحدات معالجة الرسومات. في هذه الأنظمة، يمكن للعميل التفاوض مع الخادم المركب لتحديد وحدة معالجة الرسومات التي سيتم استخدامها.
- تم تحديث بروتوكول إدارة الألوان الإصدار 1 لدعم بيانات تعريف الصور بتنسيق BT.2100 لاستخدامها بواسطة معالجات محددة في خادم الصور المركبة، مما يسمح بالعرض الصحيح لمحتوى HDR الذي تم إنشاؤه لـ Windows.
أحداث بارزة متعلقة بـ Wayland منذ نشر العدد الأخير:
- سينامون يدعم وايلاند بشكل كامل.
- في مكتبة ANGLE المستخدمة في متصفح Chrome و Androidتمت إضافة دعم Wayland.
- يقوم KDE، عند استخدام Wayland، بتنفيذ دعم استعادة الجلسة وبروتوكول Wayland xx-fractional-scale-v2 للتحجيم الجزئي.
- تم إنشاء نسخة من برنامج تشغيل Synaptics X.Org للبيئات القائمة على Wayland.
- تم البدء في فحص جاهزية منصات المؤثرات البصرية والرسوم المتحركة لاستبدال X11 بـ Wayland.
- بدأ اختبار خادم Xfwl4 المركب من مشروع Xfce.
- تمت إعادة إنشاء واجهة مستخدم Unity باستخدام Wayfire و Libadwaita.
- تحديث الخوادم المركبة وبيئات سطح المكتب: COSMIC 1.3.0، Weston 16، Phosh 0.56، Nourish 1.0.0، miracle-wm 0.10، KDE Plasma 6.7، labwc 0.20، Sway 1.2، Wayland Maker 0.8، Hyprland 0.55، Niri 26.04، LXQt 2.4.0، Cage 0.3.
لنتذكر أن Wayland هو بروتوكول للتفاعل بين الخادم المركب والتطبيقات التي تعمل معه. يعرض العملاء نوافذهم الخاصة في مخزن مؤقت منفصل، ويمررون التحديثات إلى الخادم المركب، الذي يجمع محتويات المخازن المؤقتة للتطبيقات الفردية لإنتاج مخرجات نهائية تأخذ في الاعتبار الفروق الدقيقة المحتملة مثل تداخل النوافذ والشفافية. بمعنى آخر، لا يوفر الخادم المركب واجهة برمجة التطبيقات (API) لعرض العناصر الفردية، ولكنه يعمل فقط على النوافذ التي تم تشكيلها بالفعل، مما يسمح لك بالتخلص من التخزين المؤقت المزدوج عند استخدام المكتبات عالية المستوى مثل GTK وQt، والتي تأخذ على عاتقها العمل على تركيب محتويات النوافذ.
يُعالج Wayland العديد من مشكلات أمان X11 في خادم X.Org، لأنه، على عكس الأخير، يعزل المدخلات والمخرجات لكل نافذة، ولا يسمح للعميل بالوصول إلى محتويات نوافذ العملاء الآخرين، ولا يسمح باعتراض أحداث الإدخال المتعلقة بالنوافذ الأخرى (يُطبّق خادم XLibre XServer امتداد X11 المسمى Xnamespace، الذي يوفر عزلًا للعملاء من خلال الفصل على مستوى مساحة الاسم). ويدعم Wayland العمل المباشر مع معظم المنصات المستخدمة في Linux مكتبات الرسومات بما في ذلك GTK و Qt و SDL و FLTK و wxWidgets و Clutter و EFL (مكتبة مؤسسة التنوير).
يمكن إجراء التفاعل مع مكونات الأجهزة في Wayland/Weston، مثل التهيئة، وتبديل وضع الفيديو (DRM modesetting)، وإدارة الذاكرة (GEM لبطاقة i915 وTTM لبطاقات Radeon وNouveau) لبطاقات الرسومات، مباشرةً من خلال وحدة نمطية على مستوى النواة، مما يلغي الحاجة إلى صلاحيات المستخدم المتميز. ولضمان تشغيل تطبيقات X11 القياسية في بيئة Wayland، يُستخدم مكون XWayland (Device-Dependent X) DDX، وهو مشابه في طريقة عمله لـ Xwin وXquartz لأنظمة Win32 وWin32. macOS.
المصدر: opennet.ru
