# niri v25.05 - Product: niri (https://whatsnew.fyi/product/niri) - Vendor: niri - Date: 2025-05-17 - Version: v25.05 - Original notes: https://github.com/niri-wm/niri/releases/tag/v25.05 - Permalink: https://whatsnew.fyi/product/niri/releases/v25.05 - Labels: Platforms: Linux What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Overview feature that zooms out workspaces and windows for navigation and dragging, accessible via toggle-overview bind, top-left hot corner, or four-finger touchpad swipe - **added** — Mouse and touchpad controls in overview including left-click dragging, right-click scrolling, and two-finger scrolling for workspace navigation - **added** — Touchscreen support in overview with one-finger scrolling and long-press window dragging - **added** — Ability to drag-and-drop windows to new workspaces above, below, or between existing workspaces - **added** — Separate background drawn under each workspace to support the spatial model - **added** — backdrop-color settings globally and per-output for overview background customization - **added** — place-within-backdrop layer rule to position content in the overview backdrop area - **added** — IPC request and event for monitoring overview open state - **added** — Dynamic screencast target that allows changing what is streamed via set-dynamic-cast-window, set-dynamic-cast-monitor, and clear-dynamic-cast-target binds - **added** — wait-for-frame-completion-in-pipewire debug flag to fix screencasting glitches on NVIDIA - **changed** — Default config now spawns waybar at startup - **changed** — Backgrounds now move together with workspaces due to being tied to the spatial model - **changed** — Top layer-shell layer and interactively dragged windows now render on top of background and bottom-layer popups - **changed** — Pointing device interactions in overview made easier with mouse and touchpad gesture support Niri is a scrollable-tiling Wayland compositor. Windows are arranged in columns on an infinite strip going to the right. Opening a new window never causes existing windows to resize. Here are the improvements from the last release. > [!NOTE] > Packagers: the niri default config now spawns [waybar](https://github.com/Alexays/Waybar) at startup so as not to start with a blank desktop. Please consider adding Waybar as a recommended dependency (or changing it to some other bar). ##### The Overview The big new thing in niri v25.05 is the Overview. It zooms out your workspaces and windows to let you see what's going on at a glance, navigate, and drag windows around, all without having to touch the keyboard. https://github.com/user-attachments/assets/379a5d1f-acdb-4c11-b36c-e85fd91f0995 You can open it with the `toggle-overview` bind, via the new top-left hot corner, or using a touchpad four-finger swipe. While in the overview, all keyboard shortcuts keep working, while pointing devices get easier: - Mouse: left click and drag windows to move them, right click and drag to scroll workspaces left/right, scroll to switch workspaces (no holding Mod required). - Touchpad: two-finger scrolling that matches the normal three-finger gestures. - Touchscreen: one-finger scrolling, or one-finger long press to move a window. https://github.com/user-attachments/assets/7d9deada-dfb5-4cad-93f2-23b0d72a7877 Drag-and-drop will scroll the workspaces up/down in the overview, and will activate a workspace when holding it for a moment. Combined with the hot corner, this lets you do a mouse-only DnD across workspaces. https://github.com/user-attachments/assets/5f09c5b7-ff40-462b-8b9c-f1b8073a2cbb By the way, this new drag-and-drop hold will also bring floating windows to the top outside the overview. You can drag-and-drop a window to a new workspace above, below, or between existing workspaces. https://github.com/user-attachments/assets/b76d5349-aa20-4889-ab90-0a51554c789d To make the spatial model work for the overview, niri now draws a separate background under each workspace. For layer-shell tools, the *background* and *bottom* layers zoom out together with the workspaces, while the *top* and *overlay* layers remain on top of the overview. Make sure to put your bar on the *top* layer. The background behind the workspaces in the overview is called the *backdrop*. There are new `backdrop-color` settings both [globally in the `overview {}` section](https://github.com/YaLTeR/niri/wiki/Configuration:-Miscellaneous#backdrop-color) and [per-output](https://github.com/YaLTeR/niri/wiki/Configuration:-Outputs#backdrop-color). If you want something more interesting in the backdrop, there's a new [`place-within-backdrop`](https://github.com/YaLTeR/niri/wiki/Configuration:-Layer-Rules#place-within-backdrop) layer rule. You can use it on a wallpaper tool showing a blurred version of your background, for example. ![image](https://github.com/user-attachments/assets/adcf7a97-8dd4-4264-9149-ea406ef25bcc) Since backgrounds are now tied to workspaces, they will also move together with workspaces. If you don't like this, you can combine `place-within-backdrop` with a transparent [`background-color`](https://github.com/YaLTeR/niri/wiki/Configuration:-Layout#background-color) to get the stationary wallpaper back. Check [the overview wiki page](https://github.com/YaLTeR/niri/wiki/Overview#backdrop-customization) for an example configuration. There, you will also find how to change the overview zoom level or disable the hot corner. There have also been smaller spatial model fixes to accommodate the overview. For example, the top layer-shell layer and the interactively dragged window now render on top of the background- and bottom-layer popups. Finally, @CharlieQLe added an IPC [request](https://yalter.github.io/niri/niri_ipc/enum.Request.html#variant.OverviewState) and [event](https://yalter.github.io/niri/niri_ipc/ _[Truncated at 4000 characters — full notes: https://github.com/niri-wm/niri/releases/tag/v25.05]_