Brutkey

Ivan Molodetskikh
@YaLTeR@mastodon.online
Ivan Molodetskikh
@YaLTeR@mastodon.online

This is not on main yet, but I've heavily reworked how offscreening works in niri.

Offscreening is when you render a group of elements to a separate texture, then draw that texture to the final render. In niri it's used for window opening and resize animations, and now also for full-tile opacity changes.

Before, it was very simple: every frame create a new texture and render it from scratch. The new code caches textures and does full damage tracking both "inside" and "outside" the offscreen.

Ivan Molodetskikh
@YaLTeR@mastodon.online

In practice this means much less texture re-creations and much less redrawing.

The main reason to do this was to unlock using offscreens for more persistent visuals. E.g. it's fine to do some extra rendering for a 150 ms animation, but it's not fine to do it for something that can last seconds or minutes.

In particular, I can finally make windows semitransparent while dragging them in the tiling layout! Which needs an offscreen since it's a stack of border + window + subsurfaces.

#niri

Ivan Molodetskikh
@YaLTeR@mastodon.online

This is not on main yet, but I've heavily reworked how offscreening works in niri.

Offscreening is when you render a group of elements to a separate texture, then draw that texture to the final render. In niri it's used for window opening and resize animations, and now also for full-tile opacity changes.

Before, it was very simple: every frame create a new texture and render it from scratch. The new code caches textures and does full damage tracking both "inside" and "outside" the offscreen.

Ivan Molodetskikh
@YaLTeR@mastodon.online

Today I'm releasing niri v25.02 with tabs, shadows, DnD view scrolling, and a ton of other improvements! Read the release notes at https://github.com/YaLTeR/niri/releases/tag/v25.02 and @ your distro to update the package. ablobcatbongo

[[honestly wtf how did so much stuff happen, it's been barely over a month]]

#niri #smithay #wayland #rust

Ivan Molodetskikh
@YaLTeR@mastodon.online

Another neat new thing: a bind to expand column to available width. Basically, "expand to fill empty space".

But, a bit smarter: with scrollable tiling we can have windows partially off-screen. This bind ignores such windows, making it easy to position things to exactly fill the screen, even in the middle of a scrolling layout.

#niri

Ivan Molodetskikh
@YaLTeR@mastodon.online

Today in very long overdue features (looks like I opened the issue even before v0.1.0): moving the mouse against a monitor edge now scrolls the view during drag-and-drop.

(before this change, you had to use the keyboard for this, and yes it was very awkward)

#niri

Ivan Molodetskikh
@YaLTeR@mastodon.online

You can now (finally) customize the important hotkeys list: https://github.com/YaLTeR/niri/wiki/Configuration:-Key-Bindings#custom-hotkey-overlay-titles

#niri

Ivan Molodetskikh
@YaLTeR@mastodon.online

I merged tabbed columns into niri! Now you can play around with them using your nearest niri-git package. With working animations and all ablobcatbongo

Noticed tabs can sometimes be useful for comparing windows without taking screenshots. Here for example I'm running the Adw demo from F41 vs. nightly Flathub, showing the slight color difference and apparently a 1 px layout shift.

#niri

Ivan Molodetskikh
@YaLTeR@mastodon.online

Another cool suggestion by @elkowar@chaos.social: you can now match windows recorded by an active window screencast. For example, to highlight the casted window with a different color.

#niri

Ivan Molodetskikh
@YaLTeR@mastodon.online

A ton of changes in the tabs PR over the past few days. Mainly various options (tabbed display by default, tab indicator position, etc.).

Just finished with a big one: you can now place the tab indicator within the column rather than "outside". This is needed for thicker tab bars, since otherwise they overlap adjacent windows.

https://github.com/YaLTeR/niri/pull/1085

#niri

Ivan Molodetskikh
@YaLTeR@mastodon.online

I merged tabbed columns into niri! Now you can play around with them using your nearest niri-git package. With working animations and all ablobcatbongo

Noticed tabs can sometimes be useful for comparing windows without taking screenshots. Here for example I'm running the Adw demo from F41 vs. nightly Flathub, showing the slight color difference and apparently a 1 px layout shift.

#niri

Ivan Molodetskikh
@YaLTeR@mastodon.online

A ton of changes in the tabs PR over the past few days. Mainly various options (tabbed display by default, tab indicator position, etc.).

Just finished with a big one: you can now place the tab indicator within the column rather than "outside". This is needed for thicker tab bars, since otherwise they overlap adjacent windows.

https://github.com/YaLTeR/niri/pull/1085

#niri

Ivan Molodetskikh
@YaLTeR@mastodon.online

We just hit 5000 stars! 🎉🎉

#niri