Niri 25.1 Debuts with Revamped Release Numbering

Niri scrollable-tiling compositor adopts calendar versioning, with v25.1 bringing floating window enhancements and more Wayland fixes.

Two months after its previous release, Niri, the scrollable-tiling Wayland compositor, rolls out a new version, jumping from 0.1 all the way to 25.01. And if you’re wondering what’s going on, the answer is simple – Niri is shifting from ZeroVer to a new year-and-month versioning approach.

In other words, “25.01” reflects the fact that this release was tagged in January 2025. Hotfix releases will tack on a third component, so expect something like “25.01.1” if there is ever a quick fix to the current release. Now, to the novelties—there are plenty to explore.

Perhaps the biggest headline is the addition of floating windows. As most folks in the tiling-WM space know, properly implementing floating windows is no trivial task.

Niri’s creator spent a full month refactoring code to make this happen, and the result is a well-rounded floating experience that should feel familiar to longtime users of other tiling window managers.

  • Auto-float and dialogs
    Dialog boxes and fixed-size windows now automatically float—so no more awkwardly scrolled dialog boxes.
  • Scrolling meets floating
    Despite Niri’s hallmark scrolling layout (imagine columns on an infinite strip that moves to the right), floating windows occupy their own “layer” that does not scroll. Each workspace or monitor gets its own floating layout, meaning you can freely move windows around without pushing them offscreen.
  • Position memory and offscreen avoidance
    Niri keeps track of where floating windows are placed relative to monitor size. When a workspace slides onto a smaller monitor, windows are automatically nudged inward so that nothing is out of reach. Swapping back to a larger monitor then returns the windows to their original positions.
  • Easy mouse interactions
    You can switch a window from tiling to floating (and vice versa) simply by dragging it with the mouse and right-clicking. The compositor displays a tiling “insertion hint,” making it a breeze to see exactly where your window will land.
  • Window rules
    For more control, there is a new “is-floating” window rule matcher, along with “open-floating” and “default-floating-position.” You could, for instance, tell a Firefox Picture-in-Picture player to float at the bottom-left corner of your display by default.

Layer-shell behavior sees several fixes and new capabilities. Pop-up menus (like Waybar or lxqt-panel) no longer get stuck half-open, and pop-ups from all layer-shell surfaces now appear on top of regular windows.

In practice, that means you do not need to layer your status bar “on top” just to ensure your context menus are visible. Moreover, layer-shell surfaces at the bottom or background layers can still request keyboard focus when necessary.

Niri 25.1 also brings a much-needed drag-and-drop focus functionality. Have you ever tried dragging a browser tab to a different monitor and wished the new monitor’s workspace would become active immediately? Now, it does exactly that. When you drop onto a different output, Niri focuses on that output.

Additionally, Niri will switch focus to the target if the target window accepts your drop. This avoids confusion when you try to type right after dragging and dropping.

The mouse-click bindings are another welcomed addition. If you prefer commanding windows via mouse buttons, you are in luck. Now, Niri supports binding actions to mouse clicks.

Other notable tweaks in Niri 25.1 include:

Monitor-Related Fixes:

  • Niri now automatically handles monitors with identical make/model/serial, avoiding naming conflicts.
  • It powers on monitors upon session unlock, ensuring everything wakes up properly.

Workspace Flexibility:

  • You can keep an extra empty workspace at the start (“empty-workspace-above-first“) just as there is one at the end.
  • The new actions “focus-monitor-next/previous” and “move-window/column/workspace-to-monitor-next/previous” help you navigate multi-monitor setups in a predictable, looped fashion.

Rules & Debug Flags:

  • open-focused true/false” can force or prevent automatic focus on new windows.
  • default-window-height” parallels the existing “default-column-width” rule.
  • Several new debug flags target advanced use cases, like forcing an invalid PipeWire modifier or restricting the primary scan out to a matching format.

Under-the-Hood Upgrades:

  • Animation timing got a clean rewrite, which should fix subtle flickers or jittery transitions.
  • Important dependencies—Smithay and rustix—have been updated, addressing issues like nested pop-up menus, VRR refresh-rate reporting, and a crash on Apple M2 devices.

Packagers should note that Rust 1.80 is now required. Furthermore, new environment variables (“NIRI_BUILD_VERSION_STRING” and “NIRI_BUILD_COMMIT“) allow you to override version and commit info at build time.

Check out the release announcement for more information about all novelties, where you will also find a few videos showing the new features of the Niri 25.1 scrollable-tiling Wayland compositor in action.

Bobby Borisov

Bobby Borisov

Bobby, an editor-in-chief at Linuxiac, is a Linux professional with over 20 years of experience. With a strong focus on Linux and open-source software, he has worked as a Senior Linux System Administrator, Software Developer, and DevOps Engineer for small and large multinational companies.