经过十三个月的持续开发,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