Niri: A Wayland composer with scrolling tiles written in Rust

to me

Niri is a Wayland composer with scrollable tiles

It was recently announced release of the first version of «Niri» which is positioned as a Wayland composer that offers a unique experience by arranging windows into tiles moveable. Its design focuses on providing an efficient arrangement of windows and workspaces on individual monitors, providing a fluid and organized experience for users.

The project is inspired by the GNOME PaperWM extension and implements a tiling method in which windows are grouped together in a ribbon that scrolls endlessly on the screen. Opening a new window causes the ribbon to expand, while previously added windows never change size.

About Niri

The reason to create a separate composite manager is the inability to implement a separate job with monitors in PaperWM due to quirks of the GNOME Shell (binding to the window's global coordinates). The main difference between Niri and PaperWM is that each monitor has its own window ribbon that do not intersect each other. Niri supports HiDPI and can run on multi-GPU systems (e.g. hybrid systems with a discrete graphics card and an integrated GPU).

Features:

  • Scrollable mosaic: The windows are arranged in columns in an infinite strip that extends to the right. Opening a new window does not change the size of existing ones.
  • Dynamic workspaces: Workspaces are organized vertically and are dynamic, allowing efficient management similar to GNOME.
  • Built-in screenshot interface- Niri has a built-in screenshot interface, making it easy to take images quickly and easily.
  • Screencasting supervision: Through xdg-desktop-portal-gnome, Niri allows screencasting with ease.
  • Touchpad gestures: Touchpad gestures are included to switch between workspaces, improving accessibility and user experience.
  • Configurable layout: Users can customize various aspects of the layout, including spacing, borders, struts, and window sizes, to suit their individual preferences.
  • Live Recharge Settings- Niri allows live reload settings, meaning changes made are applied immediately without the need to reboot.

Niri tells with support for control gestures on the touch panel to switch between desktops. When the monitor is turned off, the virtual desktop layout is remembered and transferred to the remaining monitor, and when the monitor is returned, it is restored to its original state.

La Environment customization is achieved through a configuration file It allows you to adjust basic parameters such as frame width, padding, output modes and window sizes and changes made to the settings are applied dynamically, without the need to restart the composite server.

For the part of the changes since v0.1.0-beta.1, The following fixes and improvements have been implemented in Niri:

  1. Fixed live reloading of configuration on NixOS, allowing changes to the configuration file symlink while keeping mtime constant.
  2. Fixed most cases where Niri would not turn on monitors after a TTY change.
  3. Fixed issue with xdg-desktop-portal-gnome not updating the screencast monitor list when disconnecting/reconnecting the monitor, due to Niri not notifying you of the changes.
  4. Fixed issues with large windows with large CSD shadows being cut off in screenshots and screencasts.
  5. Fixed changes to output settings being ignored if made on a different TTY.
  6. Fixed popups not appearing when an IME is active, with a workaround that disables capturing popups when an IME is active.
  7. Slightly improved cursor rendering performance by avoiding CPU->GPU->CPU transfers.
  8. Fixed screenshot UI not appearing if the cursor ended up outside of all monitors.

Finally for those interested in the project, You should know that the project code is written in Rust and is distributed under the GPLv3 license. You can find installation instructions, as well as more information about using Niri through keyboard shortcuts In the following link.


Leave a Comment

Your email address will not be published. Required fields are marked with *

*

*

  1. Responsible for the data: AB Internet Networks 2008 SL
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.