Skip to content

v0.1.0

Compare
Choose a tag to compare
@YaLTeR YaLTeR released this 27 Jan 10:42
· 439 commits to main since this release

Here it is. The first real release, after five months of work. Let's do a recap for the occasion.

This is niri, a scrollable-tiling Wayland compositor inspired by PaperWM. Windows are tiled on an infinite horizontal strip that scrolls left and right. They don't "overflow" onto adjacent monitors. Opening a new window never resizes existing ones.

Niri showing some windows.

Despite this being the first release with plenty of things left to do, niri already packs a good number of features.

  • All the basics. It's a Wayland compositor, it shows windows, runs on a TTY, works with multiple monitors and mixed-GPU systems, supports HiDPI.

  • Dynamic workspaces like in GNOME, but per-monitor. Workspaces also remember which monitor they were on across monitor disconnects and reconnects.

  • Some of the important desktop component protocols like wlr-layer-shell and ext-session-lock.

  • A built-in screenshot UI. Press PrtSc, select a rectangle on a frozen screen, and press Space to copy the image to the clipboard and save to a file. Or screenshot one window with AltPrtSc.

    Niri with the screenshot UI open.

  • Screencasting support through xdg-desktop-portal-gnome. Works with OBS, browsers, and others.

    Niri screencasting to OBS, Firefox, Chromium.

  • Fully live-reloading config.

  • Configurable layout: things like gaps, borders, struts, window sizes.

    Niri showing large struts and gaps.

If you want to see niri in action, here's a video demo from the README.

niri.mp4

It's also worth mentioning that:

  • NVIDIA GPU systems might have rendering issues.
  • Xwayland in rootless mode is not supported. However, you can use its excellent rootful mode with niri. Games and X11 apps work just fine for the most part.

If you'd like to give niri a try, check the README for building and running instructions. There are also a few community-maintained packages:

Finally, we have a Matrix room. Feel free to drop by with a message.

Changes since v0.1.0-beta.1

  • Fixed config live-reload on NixOS configurations which change the config file symlink but leave the mtime constant (thanks @sodiboo).
  • Fixed most cases of niri failing to light up monitors after a TTY switch (thanks @cmeissl).
  • Fixed xdg-desktop-portal-gnome not updating the screencast monitor list upon monitor disconnection / reconnection (niri wasn't notifying it about changes).
  • Fixed large windows with large CSD shadows getting cut on screenshots and screencasts.
  • Fixed output config changes being ignored if done when on a different TTY.
  • Fixed popups not showing up when an IME is active (for now as a workaround by disabling popup grabs when an IME is active).
  • Slightly improved cursor rendering performance by avoiding CPU->GPU->CPU transfers (thanks @cmeissl).
  • Slightly increased the precision of the default column widths in the default config. This should get one pixel back for the ⅓ column width on most monitors.
  • xdg-desktop-portal screencasts will now receive the optional logical monitor size which some apps require.
  • xdg-desktop-portal screenshots will now get an error instead of a broken screenshot for multi-monitor configurations (it needs to be implemented, see #117). This does not affect the screenshot UI.
  • Fixed screenshot UI not showing up if the cursor ended up outside all monitors.