تم إصدار حزمة wayland-protocols 1.48، والتي تحتوي على مجموعة من البروتوكولات والامتدادات التي تكمل بروتوكول Wayland الأساسي وتوفر الإمكانيات اللازمة لبناء خوادم مركبة وبيئات مستخدم.
новой версии:
- تمت إضافة بروتوكول xdg-session-management إلى فئة التجهيز، مما يوفر القدرة على استعادة حالة وموضع النوافذ من جلسة متقطعة في بيئات Wayland، على سبيل المثال بعد تعطل خادم مركب أو تطبيق.
- تم توسيع بروتوكول إدخال النصوص، مما يسمح للخوادم المركبة بتنفيذ طرق الإدخال وإرسال النصوص إلى التطبيقات. على سبيل المثال، تمت إضافة علامة no_emoji لإدخال النصوص بدون رموز تعبيرية، وتم دعم إجراءات إضافية تتجاوز إدخال النصوص، كما تمت إضافة علامة اللغة لنقل معلومات اللغة، بالإضافة إلى طلبات إظهار وإخفاء لوحة الإدخال، وعلامة preedit_hint لتخصيص نمط التحرير المسبق.
- تمت إضافة بروتوكول xx-cutouts التجريبي للحصول على معلومات حول الفتحات الموجودة على الشاشة (على سبيل المثال، المنطقة الموجودة أسفل الكاميرا الأمامية على شاشة الهاتف الذكي).
- تمت إضافة بروتوكول تجريبي يُسمى xx-zones لإنشاء وإضافة نوافذ من المستوى الأعلى إلى "المناطق" - وهي بيئات ذات مساحة إحداثيات خاصة بها. يسمح هذا البروتوكول بترتيب منطقي للنوافذ، حيث يتم وضع كل نافذة بالنسبة إلى جميع النوافذ الأخرى.
- تمت إضافة بروتوكول تجريبي، xx-keyboard-filter، للسماح للعميل باعتراض أحداث لوحة المفاتيح المحددة، أو تعديل أحداث الإدخال، أو منع تمرير أحداث معينة إلى سطح Wayland المُركز عليه.
تخضع جميع البروتوكولات لمراحل التطوير والاختبار والاستقرار بالتتابع. بعد إتمام مرحلة التطوير (الفئة "غير المستقرة")، يُوضع البروتوكول في فرع "التجريب" ويُدرج رسميًا في مجموعة بروتوكولات Wayland. بعد اكتمال الاختبار، يُنقل إلى الفئة المستقرة. يمكن بعد ذلك استخدام البروتوكولات الموجودة في فئة "التجريب" في التطبيقات المركبة. الخوادم والعملاء الذين يحتاجون إلى وظائف ذات صلة. على عكس فئة "غير المستقرة"، تمنع فئة "التجريب" إجراء تغييرات تُخلّ بالتوافق. مع ذلك، إذا تم اكتشاف مشكلات أو أوجه قصور أثناء الاختبار، فلا يُستبعد استبدالها بإصدار بروتوكول جديد وهام أو إضافة أخرى لـ Wayland.
لتسريع تسليم البروتوكولات للمطورين وتشجيع التنفيذ المبكر للبروتوكولات في المشاريع الحالية، بدءًا من الإصدار السابق، تمت إضافة مرحلة "تجريبية"، والتي تسمح بالتغييرات التي تكسر التوافق وإضافة بروتوكولات "خام" يمكن إحضارها تدريجيًا إلى المستوى المناسب. في حين أن البروتوكول يحتاج إلى تشكيل فريق دعم وتلقي عدد معين من الإقرارات (ACKs) من المراجعين للدخول إلى مرحلة التدريج، فإنه يحتاج فقط إلى تلقي عدم الاعتراضات (NACKs) خلال فترة المراجعة التي تستمر أسبوعين للدخول إلى المرحلة التجريبية.
يتضمن مجموعة بروتوكولات wayland حاليًا البروتوكولات المستقرة التالية، والتي تتوافق مع الإصدارات السابقة:
- تتيح خاصية "viewporter" للعميل إمكانية إجراء عمليات تغيير حجم واقتصاص حواف السطح من الجانب. الخادم.
- "وقت العرض" - يوفر عرض فيديو.
- "xdg-shell" عبارة عن واجهة لإنشاء الأسطح والتفاعل معها كنوافذ، مما يسمح لك بنقلها حول الشاشة، وطيها، وتوسيعها، وتغيير حجمها، وما إلى ذلك.
- "linux-dmabuf" - يوفر إمكانيات لإنشاء wl_buffers استنادًا إلى DMA-BUF.
- "الكمبيوتر اللوحي" - تنظيم الإدخال من الأجهزة اللوحية الرسومية.
البروتوكولات التي تم اختبارها في فرع "التدريج":
- drm-lease - يوفر الموارد اللازمة لتشكيل صورة مجسمة ذات مخازن مختلفة للعينين اليمنى واليسرى عند عرضها على خوذات الواقع الافتراضي.
- "ext-session-lock" - يحدد وسائل قفل الجلسة ، على سبيل المثال ، أثناء تشغيل شاشة التوقف أو إخراج مربع حوار المصادقة.
- "المخزن المؤقت أحادي البكسل" - يسمح لك بإنشاء مخازن مؤقتة أحادية البكسل تتضمن أربع قيم RGBA 32 بت.
- "xdg-activation" - يسمح لك بنقل التركيز بين الأسطح المختلفة من المستوى الأول (على سبيل المثال ، باستخدام xdg-activation ، يمكن لأحد التطبيقات تبديل التركيز إلى آخر).
- نوع المحتوى - يسمح للعملاء بتمرير المكونات المركبة الخادم معلومات حول المحتوى المعروض يمكن استخدامها لتحسين السلوك الواعي بالمحتوى، مثل تعيين خصائص إدارة الحقوق الرقمية المحددة مثل "نوع المحتوى". تم الإعلان عن دعم أنواع المحتوى التالية: لا شيء (لا توجد معلومات عن نوع البيانات)، صورة (إخراج صورة رقمية يتطلب الحد الأدنى من المعالجة)، فيديو (فيديو أو رسوم متحركة، يتطلب مزامنة أكثر دقة لتجنب التقطيع)، ولعبة (تشغيل لعبة، يتطلب إخراجًا بأقل قدر من زمن الاستجابة).
- ext-idle-notify - يسمح للخوادم المركبة بإرسال إشعارات عدم نشاط المستخدم إلى العملاء ، والتي يمكن استخدامها لتنشيط أوضاع توفير الطاقة الإضافية بعد قدر معين من عدم النشاط.
- التحكم في التمزق - يسمح لك بتعطيل المزامنة الرأسية (VSync) مع نبض التخميد العمودي في تطبيقات ملء الشاشة، ويستخدم للحماية من التمزق في الإخراج. في تطبيقات الوسائط المتعددة، تعتبر الشوائب الناتجة عن التمزيق تأثيرًا غير مرغوب فيه، أما في برامج الألعاب فيمكن التسامح مع الشوائب إذا تسبب التعامل معها في تأخيرات إضافية.
- ext-foreign-toplevel-list - يسترد معلومات حول الأسطح الموضوعة في المستوى الأعلى، مما يسمح لك بتنظيم النوافذ لتثبيتها فوق محتوى آخر، على سبيل المثال، لتوصيل اللوحات ومفاتيح النوافذ الخاصة بك.
- سياق الأمان - يسمح لك بتحديد العملاء باستخدام عزل وضع الحماية. يمكن للعميل تسجيل اتصال جديد بخادم مركب قائم على Wayland وإرفاق سياق أمان به، وبعد ذلك سيحد المدير المركب من الإمكانيات المتاحة للاتصال القائم بناءً على سياق الأمان المحدد.
- شكل المؤشر هو طريقة بديلة لتخصيص مظهر المؤشر، استنادًا إلى تمرير سلسلة من صور المؤشر بدلاً من التقاطها على سطح (wl_surface).
- "مقعد عابر عابر" - مصمم لإنشاء جلسات مستقلة مؤقتة (مقاعد) مصممة للاستخدام مع أجهزة الإدخال الافتراضية. على سبيل المثال، عند تنفيذ القدرة على الاتصال بسطح مكتب بعيد، يتيح لك البروتوكول إنشاء جلسة منفصلة لكل مستخدم باستخدام لوحة مفاتيح وماوس افتراضية.
- "xdg-toplevel-drag" - يوسع آلية "السحب والإفلات" مع القدرة على ربط نوافذ المستوى الأعلى بعملية السحب، والتي يمكن استخدامها، على سبيل المثال، لتنظيم سحب أشرطة الأدوات أو علامات تبويب المتصفح باستخدام الماوس. يتيح لك البروتوكول الجديد إنشاء أجزاء قابلة للفصل من النافذة والتي، عند سحبها من تلك النافذة، تصبح نوافذ جديدة ويمكن نقلها أعلى النافذة الحالية قبل إعادة إرفاقها.
- "xdg-dialog" - يسمح لك بتعيين سمات خاصة بالحوار لأسطح المستوى الأعلى، على سبيل المثال، يمكنك إنشاء مربعات حوار مشروطة تمنع تفاعل المستخدم مع بقية الواجهة.
- "linux-drm-syncobj" - يوفر أدوات لمزامنة المخزن المؤقت الصريحة باستخدام كائنات مزامنة DRM (مدير العرض المباشر). من المفترض أنه في سياق المزامنة عند العرض إلى المخزن المؤقت، فإن البروتوكول المقترح سيعمل على تحسين العمل مع برامج التشغيل استنادًا إلى واجهات برمجة تطبيقات الرسومات Vulkan وOpenGL (يعتمد التنفيذ على المعالجات الموجودة في برامج التشغيل). يتيح البروتوكول الجديد إمكانية التأكد من اكتمال عملية السحب إلى المخزن المؤقت قبل أن يعرض مدير التجميع هذا المخزن المؤقت.
- معدل ألفا، والذي يسمح للعملاء بتغيير مستوى شفافية السطح وعمليات النقل لضمان الشفافية إلى جانب الخادم المركب، والذي بدوره يمكنه إعادة توجيه هذه العمليات إلى KMS.
- xdg-toplevel-icon - يربط الرمز بنافذة المستوى الأعلى.
- ext-image-capture-source وext-image-copy-capture - تنظيم التقاط المحتوى المعروض على الشاشة.
- xdg-system-bell - يسمح لك بإخراج إشارة النظام، والتي يمكن استخدامها، على سبيل المثال، كتحذير في المحاكي الطرفي. يتم تحديد شكل إخراج الإشارة وفقًا لتقدير المدير المركب؛ ولا يمكن أن يكون صوتًا فحسب، بل استجابة مرئية.
- fifo - يطبق آلية FIFO (الوارد أولاً يخرج أولاً) لمعالجة قائمة انتظار تحديث المحتوى للسطح المعروض. على الجانب العملي، يسمح البروتوكول للإخراج بالانتظار حتى يكتمل المسح الرأسي (vblank) بدلاً من استخدام مكالمات رد الاتصال في كل مرة يكون فيها جاهزًا لعرض إطار جديد، مما يحل مشكلة تحميل GPU العالي عند استخدام VSync.
- توقيت الالتزام - يسمح لك بربط حد زمني لمحتوى السطح (يجب أن يعكس الخادم المركب تغيير المحتوى إن أمكن بعد الوقت المحدد، ولكن ليس قبل ذلك).
- ext-data-control - يسمح للعملاء المميزين بالتحكم في معالجة البيانات، على سبيل المثال، تنفيذ مديري الحافظة.
- ext-workspace — يطبق المفهوم أجهزة سطح المكتب الافتراضية ويوفر هذا النظام معلومات حول حالة أجهزة سطح المكتب، بالإضافة إلى إمكانية تفعيلها وتعطيلها. ويمكن استخدام البروتوكول لإنشاء لوحات معلومات ومؤشرات تعرض قائمة بأجهزة سطح المكتب الافتراضية المتاحة وتتيح التبديل بينها.
- إدارة الألوان — توفر هذه الميزة إمكانيات إدارة الألوان ودعم النطاق الديناميكي العالي (HDR). يسمح هذا الامتداد لتطبيقات العميل بالحصول على معلومات حول خصائص الألوان لأجهزة الإخراج، ونقل بيانات حول خصائص ألوان محتواها إلى خادم التركيب. في وضع التركيب، الخادم يمكن استخدام هذه المعلومات لإدارة الألوان تلقائيًا عند عرض المحتوى على أجهزة إخراج متنوعة، على سبيل المثال، لتحويل المحتوى إلى عرض تقديمي مناسب للعرض على شاشات HDR. تُستخدم ملفات تعريف ICC لوصف مساحات الألوان.
- xdg-toplevel-tag — يسمح لعملاء Wayland بإرفاق علامات إلى الأسطح ذات المستوى الأعلى التي يمكن لخادم التجميع استخدامها لتحديد النوافذ بعد إعادة تشغيل التطبيق (على سبيل المثال، قد يقوم التطبيق بتعيين علامات "النافذة الرئيسية" و"الإعدادات" للنافذة الرئيسية ونافذة الإعدادات). يعد هذا التعريف مفيدًا لاستعادة موضع وحجم وخصائص النوافذ بعد إعادة التشغيل، ولتحديد قواعد خاصة لأنواع فردية من النوافذ.
- تمثيل الألوان - يُحدد تمثيل ألوان سطح وايلاند. يمكن لعملاء وايلاند تمرير البيانات الوصفية اللازمة لتحديد الشفافية، ونموذج الألوان، والعينات الفرعية، ونطاق التكميم، ويُستخدم هذا عند تحويل مخزن مؤقت يحتوي على بيانات مطابقة لنموذج ألوان YCbCr إلى تمثيل RGB.
- ext-background-effect - يطبق التأثيرات على الأجزاء شبه الشفافة من سطح Wayland، مثل ضبابية الخلفية.
- pointer-warp - يسمح للتطبيق بنقل المؤشر على الفور إلى موضع محدد.
البروتوكولات التي يجري تطويرها في الفرع التجريبي:
- xx-session-management - استعادة حالة النوافذ للجلسات المتقطعة (على سبيل المثال، بعد تعطل مدير مركب).
- xx-input-method — يسمح للتطبيقات بتنفيذ طرق إدخال النصوص للنصوص المركبة الخوادم وتشكيل النص المدخل، والذي يمكن استخدامه، على سبيل المثال، لإنشاء لوحات مفاتيح افتراضية وطبقات IME (محرر طريقة الإدخال) لمعالجة الإدخال.
- يسمح بروتوكول xx-text-input للخوادم المركبة بتنفيذ طرق الإدخال وإرسال النصوص إلى التطبيقات. ويعمل هذا البروتوكول على توحيد التفاعل بين الخوادم المركبة. الخادم والتطبيقات، ويتيح لك إدارة مثل هذه الإمكانيات مثل إرسال نص الإدخال، والتعامل مع أحداث تغيير تركيز الإدخال، ومراعاة خصوصيات حقول الإدخال (اللغة، وتحديد النص، ونوع المحتوى).
يجري تطوير البروتوكولات في الفرع "غير المستقر":
- "ملء الشاشة شل" - التحكم في العمل في وضع ملء الشاشة.
- "أسلوب الإدخال" - معالجة طرق الإدخال.
- "منع الخمول" - منع إطلاق شاشة التوقف (شاشة التوقف).
- "الإدخال - الطوابع الزمنية" - الطوابع الزمنية لأحداث الإدخال.
- "keyboard-shortcuts-inhibit" - يتحكم في إرفاق اختصارات لوحة المفاتيح ومفاتيح الاختصار.
- "linux-explicit-synchronization" خاص بـ Linux آلية لمزامنة المخازن المؤقتة بالنسبة للسطح.
- "إيماءات المؤشر" - التحكم من شاشات اللمس.
- "قيود المؤشر" - قيود المؤشر (الحظر).
- "التحديد الأساسي" - بالقياس إلى X11 ، فإنه يوفر الحافظة الأساسية (التحديد الأساسي) ، ويتم عادةً إدخال المعلومات من خلال زر الماوس الأوسط.
- "أحداث المؤشر النسبية" - أحداث المؤشر النسبية.
- "إدخال النص" - تنظيم إدخال النص.
- "xdg-foreign" هي واجهة للتفاعل مع أسطح عميل "مجاور".
- "xdg-decoration" - عرض زخارف النوافذ على جانب الخادم.
- "xdg-output" - معلومات إضافية حول إخراج الفيديو (يُستخدم في القياس الجزئي).
- "xwayland-keyboard-grab" - التقاط المدخلات في تطبيقات XWayland.
المصدر: opennet.ru
