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).
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.
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.
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. inlogind.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.