After eight months of development the launch of the new version Sway 1.10, version in which the developers worked for the implementation of All improvements in wlroots 0.18, support improvements, compatibility and especially bug fixes.
For those unaware of Sway, you should know that is a tiling window manager based on the Wayland protocol and compatible with the i3 manager and its i3bar panel. Sway offers a logical rather than spatial window organization: Instead of placing windows in fixed positions, it arranges them in a grid that optimizes the use of screen space. This allows for agile manipulation of windows using only the keyboard, making it ideal for advanced users looking for an efficient workflow.
Main new features of Sway 1.10
The new version of Sway 1.10 includes several important updates and improvements among which is the support for protocols linux-drm-syncobj-v1, alpha-modifier-v1, ext-foreign-toplevel-list-v1 and ext-transient-seat-v1, which provide improvements in handling synchronization, transparency, control over top-level windows and creation of virtual login sessions, among other capabilities.
Another new feature in Sway 1.10 is the Vulkan support The ability to use ICC profiles has been added to the Vulkan graphics API. This facilitates advanced color management and Allows you to get detailed information about the GPU pixel buffers, a key improvement for applications that require precision in visual representation.
In addition, a new one was implemented optimization in output devices and ICC profiles, By improving the configuration algorithm, a command has been added to apply ICC profiles to specific output devices, optimizing the visual experience.
Has added tearing-control-v1 protocol, which allows you to disable VSync in full-screen applications to prevent tearing. This is especially useful in gaming, where disabling VSync can reduce latency.
On the other hand, it also highlights the xdg-shell version 5 support, this version of the protocol allows you to customize the position of popup windows and adds buttons to minimize and maximize windows when using CSD.
Also Changes have been made to dependencies and configuration, as the dmenu_run package has been removed from the default configuration, while pactl has been included to allow keyboard shortcuts to adjust volume and brightness. Additionally, the grim utility for screenshots has been added.
Added the support for «ext-transient-seat-v1», an extension that allows you to create temporary sessions for virtual input devices, such as in remote desktop applications, providing independent virtual keyboard and mouse sessions for each user.
Of the other changes that stand out:
- The rendering code has been rewritten, adopting the new wlroots scene graph API, leading to an increase in graphics processing efficiency.
- GPU Reset State Recovery In situations where the GPU is reset, Sway will be able to recover its state.
- Added support for ext-foreign-toplevel-list-v1, making it now possible to get information about surfaces at the top level.
- The wl_drm protocol has been replaced by linux-dmabuf-v1, improving security and compatibility with modern Wayland configurations.
- The option to enable Xwayland has been removed from the Sway build process; it now depends directly on the wlroots configuration.
Finally, if you are interested in being able to know more about it, you can consult the details in the following link
How to install Sway on Ubuntu and derivatives?
For those who are interested in being able to install Sway on Ubuntu and its derivatives, it is important to take into account some requirements and considerations:
- Wayland: Sway requires Wayland to be available on the system.
- Graphics drivers: Sway does not support proprietary graphics drivers. They must be uninstalled and use free graphics drivers.
Installing Sway is simple and the first thing we need to do is install the necessary dependencies:
sudo apt update sudo apt install -y \ meson \ libwayland-dev \ wayland-protocols \ libwayland-egl-backend-dev \ libxkbcommon-dev \ libinput-dev \ libcap-dev \ libxcb-composite0-dev \ libxcb-render0-dev \ libxcb-shape0-dev \ libxcb-xfixes0-dev \ libpixman-1-dev \ libevdev-dev \ libpango1.0-dev \ libcairo2-dev \ libdrm-dev \ libgbm-dev \ libgles2-mesa-dev \ libegl1-mesa-dev \ libxcb-icccm4-dev \ libxcb-xkb-dev \ libxcb-image0-dev \ libxcb-xrm-dev \ libxcb-randr0-dev \ libxcb-xinerama0-dev \ libx11-xcb-dev \ libxrandr-dev \ libxcb-util-dev \ libxcb-util0-dev \ libxcb-keysyms1-dev \ libpam0g-dev
Then we add the Sway repository:
sudo add-apt-repository ppa:swaywm/sway sudo apt update
And we install Sway:
sudo apt install sway