经过近一年的开发,基于 Wayland 协议构建、兼容 i3 平铺窗口管理器和 i3bar 面板的合成管理器 Sway 1.12 正式发布。该项目使用 C 语言编写,并以 MIT 许可证发布。该项目旨在…… Linux 以及 FreeBSD。
Sway 采用逻辑窗口放置(窗口管理器动态选择窗口位置和大小,同时考虑其他已打开的窗口并防止窗口重叠),而非传统的空间定位(用户选择任意窗口位置和大小,允许窗口重叠)。窗口以网格形式排列,可优化利用屏幕空间,并允许用户仅使用键盘快速操作窗口。Sway 在命令、配置文件和进程间通信 (IPC) 层面均保证与 i3 的兼容性,因此可以无缝替代 i3,并使用 Wayland 而非 X11。
为了创建一个成熟的用户环境,提供了以下附带组件:swayidle(实现待机模式的后台进程)、swaylock(屏幕保护程序)、mako(通知管理器)、grim(创建屏幕截图)、slurp(选择屏幕上的一个区域)、wf-recorder(捕获视频)、waybar(应用程序栏)、virtboard(屏幕键盘)、wl-clipboard(使用剪贴板)、wallutils(管理桌面壁纸)。
Sway 是一个基于 wlroots 库的模块化项目,wlroots 库包含了组织复合管理器所需的所有基本组件。wlroots 包含后端,用于……
wlroots库抽象化了对屏幕、输入设备的访问,无需直接访问OpenGL即可进行渲染,并可与KMS/DRM、libinput、Wayland和X11进行交互(提供了一个基于Xwayland的X11应用程序运行层)。除了Sway之外,wlroots库还被积极用于其他项目。除了支持C/C++之外,它还提供了Scheme、Common Lisp、Go、Haskell、OCaml、Zig、Python和Rust的绑定。
在新版本中:
- 增加了捕获单个窗口的功能。
- 在使用基于 Vulkan API 的渲染时,实现了对 HDR10 高动态范围输出的支持。
- 新增对 Wayland 协议的支持:
- color-management-v1 用于色彩管理和支持扩展动态范围 (HDR,高动态范围)。
- color-representation-v1 用于定义 Wayland 表面的颜色表示。
- xdg-toplevel-tag-v1 是 Wayland 客户端的一个插件,用于将标签附加到顶级表面,以便合成服务器在重启后恢复窗口的位置、大小和属性,并为某些类型的窗口定义特殊规则。
- ext-workspace-v1 用于创建列出可用虚拟桌面并允许在它们之间切换的面板或指示器。
- wl_fixes 用于解决其他底层协议 API 的原生功能无法解决的问题。
- 已实现“--device-primaries”选项,指定该选项后,将根据显示器通过 EDID 获取的数据生成颜色配置文件。
- 增加了对使用 libinput 中的 LIBINPUT_SWITCH_KEYPAD_SLIDE 标志检测键盘存在的支持。
- 配置文件包含特殊多媒体键(暂停、恢复播放、下一曲等)的绑定,用于使用 playerctl 实用程序控制多媒体内容的播放。
- sRGB 输出颜色配置文件已切换为使用分段 sRGB 传递函数,而不是 gamma 2.2(对于 gamma 2.2,应该使用单独的 gamma22 配置文件,这是默认配置文件)。
- 现在,在不支持的 GPU 系统上运行程序(例如,使用 NVIDIA 专有驱动程序时)会发出警告而不是错误。可以使用“--unsupported-gpu”标志或 SWAY_UNSUPPORTED_GPU 环境变量禁用此警告。
- 新增对使用显示管理器启动 Sway 的官方支持。
- wlroots 0.20 库的新特性已启用。新版本 wlroots 的变更包括:支持使用 color-representation-v1 和 color-management-v1 协议定义 Wayland 表面的颜色表示、颜色管理和 HDR 支持;支持 Wayland cursor-shape-v1 协议,用于自定义光标外观。
ext-workspace-v1 用于使用虚拟桌面概念,xdg-toplevel-tag-v1 用于通过标签绑定识别窗口/表面。

来源: opennet.ru
