After 14 months of development, the release of the Sway 1.9 composite manager has been published, built using the Wayland protocol and fully compatible with the i3 tiling window manager and the i3bar panel. The project code is written in C and is distributed under the MIT license. The project aims for use in Linux and FreeBSD.
Compatibility with i3 is provided at the level of commands, configuration files, and IPC, allowing Sway to be used as a transparent replacement for i3, utilizing Wayland instead of X11. Sway allows windows to be organized on the screen logically rather than spatially. Windows are arranged in a grid that makes optimal use of screen space and allows for quick manipulation of windows using only the keyboard.
To create a complete user environment, the following components are offered: swayidle (background process implementing the KDE idle protocol), swaylock (screen locker), mako (notification manager), grim (screenshot creation), slurp (screen area selection), wf-recorder (video capture), waybar (application bar), virtboard (on-screen keyboard), wl-clipboard (clipboard management), wallutils (desktop wallpaper management).
Sway evolves as a modular project built on top of the wlroots library, which abstracts all basic primitives for organizing the operation of the compositing manager. Wlroots includes backends for abstracting access to the screen, input devices, rendering without direct access to OpenGL, interaction with KMS/DRM, libinput, Wayland, and X11 (providing a layer to run X11 applications on Xwayland). In addition to Sway, the wlroots library is actively used in other projects, including Librem5 and Cage. In addition to C/C++, bindings have been developed for Scheme, Common Lisp, Go, Haskell, OCaml, Python, and Rust.
In the new release:
- New features of the wlroots 0.17 library have been utilized, such as support for Wayland protocols content-type-v1 (handling information about displayed content), xwayland-shell-v1 (linking an X11 window with a Wayland surface), wp-fractional-scale-v1 (fractional scaling), security-context-v1 (sandbox isolation), and cursor-shape-v1 (customizing cursor appearance).
- Improved support for the 'xdg-activation-v1' protocol allows transferring focus between different first-level Wayland surfaces (for example, using xdg-activation, one application can switch the focus to another). The new version has added support for focus tracking considering virtual desktops and multi-monitor configurations.
- The content rendering code has been transitioned to a new rendering API provided by the wlroots library, which has resulted in increased performance.
- A setting has been added to the configuration file to disable the primary clipboard.
- New input device control commands have been added, allowing the setting of RotationAngle and ScrollButtonLock parameters in libinput to address issues with touchpads and mice.
- Support for using tablet buttons to resize floating windows has been added.
- IPC support for output events has been added.
- The wmenu project has been set as the default application menu.
- Support for the KDE-specific idle protocol has been discontinued, replaced by the standard Wayland idle-notify-v1 protocol.


Source: opennet.ru
