KDE KClock惊艳升级Wayland画中画功能即将登场!

多年来,KDE Plasma平台上的KClock应用不断迎来更新,比如与KRunner的深度整合,以及专为管理闹钟而设计的后台服务(kclockd)。如今,KDE开发者们似乎又有了新点子借助适用于Wayland的全新画中画(Picture-in-Picture,简称PiP)协议,为KClock添加弹出式计时器功能。

这一切源于一个简单的观察。KDE开发者Kai Uwe Broulik在一次演示中,看到有人使用一个小型计时器窗口,觉得这是个不错的主意。然而,要实现这种“始终置顶”的效果,在传统的X11显示服务器和较新的Wayland之间却大相径庭。

在X11下,应用程序几乎可以为所欲为。如果一个程序想要绘制一个下拉菜单,只需创建一个无边框窗口,将其放置在特定位置,并捕获所有用户输入即可。而Wayland则秉持着不同的理念。

正如Broulik所指出的,在Wayland下,应用程序只需描述其需求,而合成器则负责决定如何处理。下拉菜单就是一个XDG Popup。应用程序会告诉合成器是哪个按钮触发了它,然后合成器负责处理其位置和行为。

这种方式更加安全且一致。它也意味着应用程序不能自行决定将其窗口置于所有其他窗口之上。这一限制防止了网页浏览器在Wayland下实现覆盖式视频播放器。

为了以标准化的方式解决这一问题,需要为画中画(PiP)提供一个适当的Wayland支持模型。于是,xx-pip-v1协议应运而生。这是一个专为创建浮动PiP窗口而设计的新协议,而Plasma的合成器KWin最近也已支持该协议。由于这是一个实验性协议,其使用需要通过环境变量KWIN_WAYLAND_SUPPORT_XX_PIP_V1来开启。

对于演示来说,新协议固然不错,但还需要一个实际的应用程序来发现其不足之处。因此,Broulik在KClock中实现了这一功能。这项工作使得KClock能够提供弹出式计时器,甚至可以在一个小型PiP窗口中弹出秒表。

用户可以在系统范围内设置选项,控制PiP窗口的出现位置或是否出现,并且该设置将适用于所有使用该协议的应用程序。您可以在GitLab上查看合并请求,以获取有关此功能的更多技术细节。

本网通过AI自动登载内容,本文转载自MSN,【提供者:十轮网科技资讯 | 作者:佚名】,仅代表原作者个人观点。本站旨在传播优质文章,无商业用途。如不想在本站展示可联系删除。

推荐阅读