اپلیکیشن KClock برای محیط KDE Plasma در طول سالها چندین بهروزرسانی دریافت کرده است، مثل یکپارچگی بهتر با KRunner و اضافه شدن سرویس پسزمینه اختصاصی (kclockd) برای مدیریت هشدارها. حالا به نظر میرسد توسعهدهندگان KDE قصد دارند یک امکان جالب اضافه کنند: تایمرهای پاپآوت (pop-out) با استفاده از پروتکل جدید Picture-in-Picture مخصوص Wayland.

پنجره اصلی برنامه KClock در صفحه تایمر «استراحت کن» قرار دارد و پیامی با این مضمون نمایش داده میشود: «این تایمر در حالت Picture-in-Picture قرار دارد». یک پنجره پاپآپ کوچک مجزا در پایین سمت راست نمایش داده میشود که تایمر، یک دایره برای نمایش پیشرفت و چند کنترل شامل اضافه کردن یک دقیقه، توقف، بازنشانی، بازگشت به برنامه و بستن را در خود دارد. تصویر: Kai Uwe Broulik
همه اینها از یک مشاهده ساده شروع شد. کای اووه برولیک، یکی از توسعهدهندگان KDE، دید که کسی در یک ارائه از یک پنجره تایمر کوچک استفاده میکند و فکر کرد ایده خوبی است. مشکل این بود که رسیدن به چنین رفتاری با قابلیت «همیشه در بالا بودن» در سرور نمایش قدیمی X11 و Wayland جدید، متفاوت انجام میشود.
در X11، یک برنامه تقریباً هر کاری که میخواست میتوانست انجام دهد. اگر برنامهای میخواست یک منوی کشویی بسازد، فقط یک پنجره بدون حاشیه ایجاد میکرد، آن را در جای خاصی قرار میداد و تمام ورودیهای کاربر را میگرفت. اما Wayland فلسفه متفاوتی دارد.
همانطور که برولیک توضیح میدهد، در Wayland برنامه فقط شرح میدهد که چه چیزی میخواهد و این مدیر ترکیب (compositor) است که تصمیم میگیرد چگونه آن را اجرا کند. مثلاً یک منوی کشویی یک XDG Popup است. برنامه به compositor میگوید کدام دکمه باعث باز شدن آن شده و compositor جایگذاری و رفتار آن را مدیریت میکند.
این روش بسیار امنتر و سازگارتر است. همچنین باعث میشود یک برنامه نتواند به دلخواه خودش، پنجرهاش را همیشه بالای بقیه پنجرهها نگه دارد. این محدودیت جلوی مرورگر وب را میگیرد که نتواند به راحتی یک پخشکننده ویدیوی رویهم (overlay) را در Wayland پیاده کند.
برای حل این مشکل به روشی استاندارد، لازم بود یک مدل پشتیبانی مناسب برای Picture-in-Picture یا PiP در Wayland ایجاد شود. در اینجا پروتکل xx-pip-v1 معرفی شد. این یک پروتکل جدید است که به طور خاص برای ساخت پنجرههای شناور PiP طراحی شده و KWin، compositor پلاسمای KDE، بهتازگی از آن پشتیبانی میکند. چون این پروتکل هنوز آزمایشی است، استفاده از آن فقط با یک متغیر محیطی به نام KWIN_WAYLAND_SUPPORT_XX_PIP_V1 فعال میشود.
داشتن یک پروتکل جدید برای نمایشهای آزمایشی خوب است، اما باید در یک برنامه واقعی پیادهسازی شود تا نقاط ضعف آن مشخص شود. بنابراین برولیک آن را در KClock پیادهسازی کرد. این کار باعث شد KClock بتواند تایمرهای پاپآوت و حتی کرونومتر (stopwatch) پاپآوت را در یک پنجره PiP کوچک ارائه کند.
کاربر میتواند گزینههایی در سطح سیستم داشته باشد تا کنترل کند پنجره PiP کجا نمایش داده شود یا اصلاً نمایش داده نشود، و این تنظیم برای تمام برنامههایی که از این پروتکل استفاده میکنند، اعمال میشود.