Wayland 1.24 现已发布:稳定性、新功能等等

韦兰侏儒

经过十三个月的持续开发,Wayland 1.24 正式发布,这是该协议的最新稳定版本,除了修复各种错误外,还实现了各种改进。

与以前的版本不同,Wayland 1.24 的新版本没有引入任何颠覆性的变化,而是巩固了以前的工作,提高了稳定性,增强了协议,并在 API 和 ABI 级别实现了完全向后兼容。

Wayland 1.24 中的新功能

在 Wayland 1.24 的新版本中,最显著的新特性之一是实现了 wl_fixes 接口,旨在修正协议其他核心接口的局限性。其功能之一是 destroy_registry,允许显式终止对 wl_registry 对象的使用。

Wayland 1.24 中引入的另一个有趣的新功能是wl_keyboard::key API 新增了一个函数,该函数现在包含一个名为“repeated ”的新伪状态。这一改进提升了持续按键的表示方式,尤其是在键盘输入精度至关重要的环境中,例如通过 Wayland 进行的远程桌面或 VNC 会话。

使用 `wl_keyboard::key`,可以在按键按下后、释放前将其设置为“重复”状态。在按键保持此状态期间,服务器可以显式生成多个“重复”事件,这些事件与“按下”状态不同。此更改在需要区分单次按下和长按的场景中尤其有用,例如输入长字符或远程控制图形界面时,传统行为有所不同。

Wayland 1.24还包含一些新功能,例如:

  • wl_display_dispatch_queue_timeout() 和 wl_display_dispatch_timeout():处理超时事件。
  • wl_shm_buffer_ref() 和 wl_shm_buffer_unref():允许访问共享内存缓冲区,即使它们已被销毁。
  • wl_proxy_get_interface() 和 wl_resource_get_interface():促进接口的动态检索。
  • wl_resource_post_error_vargs():使用变量参数列表改进错误处理。

新扩展

值得一提的是,Wayland 生态系统在过去一年中新增了许多扩展,极大地增强了其功能,尤其是在色彩管理、视觉特效和输入处理方面。虽然大多数新扩展并非最新版本独有,但值得重点介绍的是近几个月来推出的一些重要扩展:

  • 色彩管理和色彩表现-v1:启用色彩管理和 HDR 支持。
  • xdg-顶级标签: 使得重启后识别窗口变得更容易。
  • 外部背景效果: 允许在透明区域产生模糊和效果。
  • 指针扭曲: 可以立即重新定位指针。
  • xx-会话管理: 意外关闭后恢复窗口的状态。
  • xx-输入法: 新输入法系统的进步。
  • 外部数据控制: 允许特权客户端操作数据(非常适合剪贴板)。
  • 外部工作区: 管理虚拟桌面及其状态。
  • xdg 系统铃声: 允许系统发出警报信号。
  • xdg-顶层图标: 将图标与顶层窗口关联。
  • ext-image-capture-source 和 ext-image-copy-capture: 允许您捕获屏幕内容。
  • FIFO 和提交时间: 管理显示内容的更新时间和优先级。

最后,如果您有兴趣了解更多信息,可以点击以下链接查看详情。

如果我的发行版中没有 Wayland,我该如何安装?

Wayland 不是作为独立应用程序安装的,因为它是一种协议,需要兼容的显示服务器(例如 Wayfire、Weston、Sway 或 wlroots)和合成器(例如 GNOME、KDE ​​Plasma 等)来支持它。

值得一提的是,大多数现代发行版都默认安装了 Wayland,至少可以作为选项。但如果您不确定它是否存在或想要更新,可以按照以下步骤操作。

我如何知道我是否正在使用 Wayland?

要检查您的发行版中是否有 Wayland,只需输入:

回显$XDG_SESSION_TYPE

如果显示为 wayland,则表示您正在使用 Wayland。

如果显示 x11,则表示您正在使用 X11。

您还可以检查这个变量:

loginctl show-session $(loginctl | grep $(whoami) | awk '{print $1}') -p 类型

如果您已经检查过是否拥有 Wayland,而您没有,则可以使用以下命令之一进行安装:

Debian / Ubuntu

sudo apt install libwayland-client0 libwayland-server0

Fedora

sudo dnf 安装 wayland

Arch Linux及其衍生版本:

sudo pacman -S wayland

openSUSE的

sudo zypper 安装 wayland libwayland-egl1 libwayland-client0 libwayland-server0

在 Google 中将其添加为首选来源