github YaLTeR/niri v0.1.0-alpha.3

latest releases: v0.1.6, v0.1.5, v0.1.4...
4 months ago

Config breaking change

Settings for focus-ring, preset-column-widths, default-column-width, gaps, struts moved into a new layout { } node.

layout {
    focus-ring { /* ... */ }
    preset-column-widths { /* ... */ }
    default-column-width { /* ... */ }
    gaps 8
    struts { /* ... */ }
}

Multi-GPU support

Monitors plugged into secondary GPUs will now light up and work. This is particularly important for hybrid laptops with an integrated and a discrete GPU, where for example a monitor may "plug into" the dGPU while the primary device is the iGPU.

Additionally, direct scan-out will now work in more cases across GPUs (i.e. a dGPU client on an iGPU monitor).

image

Niri uses the default GPU for rendering, the same as any other GL client. You can force niri to use a different GPU with a new debug setting which works similarly to the WLR_RENDER_DRM_DEVICE environment variable from wlroots:

debug {
    render-drm-device "/dev/dri/renderD129"
}

Borders

You can now add borders to windows with a new setting:

layout {
    border {
        // The settings are the same as for the focus ring.
        // If you enable the border, you probably want to disable the focus ring.
        // off
        width 4
        active-color 255 200 127 255
        inactive-color 80 80 80 255
    }
}

In contrast to the focus ring, borders are always visible, even on unfocused windows.

image

Fullscreen backdrop

Fullscreen windows smaller than the monitor now have a monitor-sized black backdrop, as expected by xdg-shell. This makes all fullscreen windows consistent in how they look, while keeping the PaperWM-like property that they mostly behave like a regular column that you can scroll out of view if you want.

image

More improvements in this release

  • Added a focus-column-{first,last} actions that focus the leftmost/rightmost column on the workspace, bound to ModHome/End by default.
  • Added a move-column-to-{first,last} actions that move the focused column to the leftmost/rightmost position on the workspace, bound to ModCtrlHome/End by default.
  • Added an input { disable-power-key-handling } config flag to prevent niri from taking over the power button handling (which makes it sleep instead of power off). You can use this flag if you configure the power button elsewhere, i.e. in logind.conf.
  • Windows on unfocused monitors now always display as unfocused.
  • When prefer-no-csd is unset (the default), niri is now more insistent on client-side decorations. This makes the alacritty 0.13 use CSD in this case for example.
  • Added a debug { disable-cursor-plane } config flag if you're having cursor rendering issues.
  • Enabled EGL support for clients in the winit backend (when running niri as a nested window). On Fedora with recent Mesa this makes it so you can run GL clients inside nested niri again.
  • The toggle-debug-tint action, bound to ModCtrlShiftT by default, will now redraw the screen immediately.

Caution

This is an alpha tag. There are known bugs and missing features. Don't be surprised if there's a breaking config change in the future.

Please check the README for building and installation instructions. Also, if you're on Fedora, I've got a COPR. NixOS users, check out https://github.com/sodiboo/niri-flake.

Don't miss a new niri release

NewReleases is sending notifications on new releases.