Удобный таймер всегда под рукой: KClock в KDE получит поддержку "картинка в картинке" в Wayland
- Категория: Linux
- Дата: 30 июня 2025 г. в 19:25
- Просмотров: 17
Приложение KClock для KDE Plasma постоянно развивается и получает полезные обновления. Недавно была улучшена интеграция с KRunner и добавлен фоновый сервис (kclockd) для управления будильниками. Теперь разработчики KDE готовят кое-что действительно интересное: всплывающие таймеры, использующие новый протокол "картинка в картинке" (Picture-in-Picture, PiP) для Wayland.
Image: Kai Uwe Broulik
Всё началось с простого наблюдения. Разработчик KDE, Кай Уве Броулик, заметил, как кто-то использует небольшое окно таймера во время презентации, и решил, что это отличная идея. Но вот незадача: реализация такого поведения "всегда поверх" работает по-разному в устаревшем графическом сервере X11 и в более современном Wayland.
X11 против Wayland: в чём разница?
В X11 приложение могло делать практически всё, что угодно. Если программе нужно было отобразить выпадающее меню, она просто создавала окно без рамки, размещала его в нужном месте и перехватывала весь пользовательский ввод. Wayland придерживается совершенно иной философии.
Как отмечает Броулик, в Wayland приложение описывает, что оно хочет сделать, а композитор (менеджер окон) решает, как это реализовать. Выпадающее меню – это XDG Popup. Приложение сообщает композитору, какой кнопкой оно вызвано, а композитор обрабатывает его размещение и поведение.
Wayland и "картинка в картинке"
Такой подход гораздо безопаснее и обеспечивает большую согласованность. Но это также означает, что приложение не может просто так решить, что его окно должно всегда быть поверх всех остальных. Это ограничение, например, не позволяет веб-браузеру реализовать нативный (встроенный) видеоплеер в режиме PiP под Wayland.
Чтобы обойти это ограничение стандартизированным способом, потребовалась полноценная поддержка PiP в Wayland. Так появился протокол xx-pip-v1 – новый протокол, разработанный специально для создания плавающих окон PiP. Композитор KWin в Plasma недавно получил поддержку этого протокола. Поскольку это экспериментальный протокол, его использование включается через переменную окружения KWIN_WAYLAND_SUPPORT_XX_PIP_V1.
Новый протокол – это хорошо для демонстраций, но ему нужно реальное применение, чтобы выявить слабые места. Поэтому Броулик реализовал его в KClock. Благодаря этому KClock сможет отображать всплывающие таймеры и даже секундомер в небольшом окне PiP.
Пользователь сможет настраивать параметры отображения окна PiP (например, его положение) для всех приложений, использующих этот протокол. Более подробную техническую информацию об этой функции можно найти в запросе на слияние на GitLab.
Мнение редакции MSReview: Разработка Wayland PiP для KClock – это важный шаг вперед в обеспечении стандартизированного и безопасного способа реализации функции "картинка в картинке" в Linux. Это нововведение не только улучшит пользовательский опыт в KDE Plasma, но и создаст основу для более широкого внедрения PiP в различных приложениях Wayland.
- Комментарии