Search

Items tagged with: niri


Why does niri stop network connections on idle?


I really want to love niri window manager, but I just can’t.

I could deal with niri and swayidle not working at all with seemingly randomly locking me when I am in the middle of typing something or on a video conference call if niri would NOT kill my network connection when it’s idle.

I don’t understand why this is even a feature? It does not happen with sway. In sway, when swayidle kicks in, I still have a network connection. But not in niri. Why? Is there a way to get it to not do that? Who knows? The documentation is terrible.

If it did not do that, then I could live with having idle kick in...




The media in this post is not displayed to visitors. To view it, please go to the original post.

After five months of (on and off) development, I'm glad to announce niri v26.04! It comes packed with features:

- window blur, of course, in all its variations
- mouse cursor in window screencasts
- screencast IPC
- optional includes
- IME users can finally rename files in nautilus
- Eee PC users can finally take screenshots

Enjoy the release notes: github.com/niri-wm/niri/releas…

#niri #wayland #rust


The media in this post is not displayed to visitors. To view it, please go to the original post.

A wild xdagiz appeared and corrected a constant in Smithay's GL code, fixing screenshots on older Intel laptops! Here's a screenshot from my ASUS Eee PC to prove it.

github.com/Smithay/smithay/pul…

#niri #smithay


#niri


The media in this post is not displayed to visitors. To view it, please go to the original post.

Bad Apple but it's an ext-background-effect blur region

#wayland #niri


The media in this post is not displayed to visitors. To view it, please go to the original post.

Updates on window blur in niri!

1. The reason it's not done yet is I'm very busy with uni. Barely any time for my other projects.

2. I implemented ext-background-effect for popups, fixed some edge cases and did some necessary refactors. A few more fixes left before merge.

3. Meanwhile, various projects are adding ext-background-effect support. For example, DankMaterialShell's git version with quickshell-git already does blur out of the box.

#niri

#niri


The media in this post is not displayed to visitors. To view it, please go to the original post.

btw we now have an artwork repo in the niri-wm org, and today Duncan Rose submitted two absolute FIRE wallpapers they created in Blender. Check out "pool" and "cut" in the wallpapers folder: github.com/niri-wm/artwork

("pool" was inspired by one the Microsoft Ethereal wallpapers: microsoft.design/wallpapers/)

#niri

#niri


The media in this post is not displayed to visitors. To view it, please go to the original post.

Alright, I've finished most of the things that I wanted to finish, so I created a pull request for background blur in niri: github.com/niri-wm/niri/pull/3…

Please give it a good test and tell me if anything's broken!

#niri

#niri


The media in this post is not displayed to visitors. To view it, please go to the original post.

niri has reached 20k stars on GitHub! :apartyblobcat: :apartyblobcat:

pretty wild tbh

thanks everyone for support! :ablobcatheartsqueeze:

#niri

#niri


The media in this post is not displayed to visitors. To view it, please go to the original post.

I've now implemented proper full region support for ext-background-effect and kde-blur protocols. Clients can use this to shape blur to their rounded corners for example.

Here's the Vicinae launcher [1] that added ext-background-effect support in their last release, with rounded corners and background blur on niri with no extra configuration.

[1]: github.com/vicinaehq/vicinae

#niri

#niri


The media in this post is not displayed to visitors. To view it, please go to the original post.

Niri can block out windows from screencasts. This must work with all other niri features, including background blur. When the window itself is blocked out that's easy, but what if something in the background layer is blocked out?

Certainly turned out to be one of the trickiest pieces of logic to properly support this. Especially the window closing animation which renders a snapshot of the last visible window contents.

#niri

#niri


I moved the niri repo from my personal GitHub to a new org: github.com/niri-wm/niri

I set up a redirect for GitHub Pages, so hopefully all old links keep working

The primary reason to move to an org is giving granular repo permissions, e.g. let Semper triage and manage issues (who's been doing a fantastic work helping with issues, thanks a ton!). This is unfortunately only possible in organizations and not in personal repos

We'll also add more related repos like awesome-niri to the org

#niri

#niri


The media in this post is not displayed to visitors. To view it, please go to the original post.

Today: implemented (a limited but useful subset of) both ext-background-effect and org-kde-kwin-blur protocols. Clients use these to request blur on their surfaces without having to configure anything in the compositor. These protocols also allow clients to blur only parts of their surfaces, for example here excluding client-side decoration bars and shadows.

Here are three terminals all with their org-kde-kwin-blur setting enabled.

#niri

#niri


The media in this post is not displayed to visitors. To view it, please go to the original post.

Today, got xray working on the closing window animations. The reason this needs special treatment is that when a window closes, niri renders a snapshot of its last visible contents to use for the animation. This happens outside the normal rendering path so I needed to thread through the xray background rendering logic as well as the correct window coordinates (since the xray background needs to know where the window is to draw the correct thing).

#niri

#niri


The media in this post is not displayed to visitors. To view it, please go to the original post.

you know it's serious when you have to pull out a notebook to figure out the coordinate transforms

#niri

#niri


The media in this post is not displayed to visitors. To view it, please go to the original post.

Alright, getting somewhere! I think I've figured out a good code structure for the xray blur. It now correctly works even inside offscreens (opening animation, and when you drag a window targeting the tiling layout), and it should also work properly with the upcoming screen magnifier (that we have in pull requests).

Still not a single blur re-render in this entire video!

#niri

#niri


The media in this post is not displayed to visitors. To view it, please go to the original post.

Added non-xray blur, based on @drakulix's Smithay/COSMIC implementation.

Keep in mind this blur work is still extremely WIP and with many issues (some visible on the video). It's also still not entirely clear to me how to best structure the code around it in niri. We'll see

#niri


The media in this post is not displayed to visitors. To view it, please go to the original post.

So yeah, I'm working on blur for niri. I'm doing "xray blur" first where the idea is that you only include background surfaces, so you pretty much never have to redo the blur—next to zero perf impact unless you have a video wallpaper or smth.

Turns out that it's quite tricky to do well, especially with our Overview. I'm like on my third refactor attempt now but I think I've got a good approach.

During this video there's no reblurring whatsoever, all just drawing cached static textures.

#niri

#niri


The media in this post is not displayed to visitors. To view it, please go to the original post.

working on my new visual style

#niri

#niri


The media in this post is not displayed to visitors. To view it, please go to the original post.

Also added niri msg action stop-cast to force-stop a PipeWire screencast

#niri

#niri


The media in this post is not displayed to visitors. To view it, please go to the original post.

Oh right, for PipeWire I can send the node ID, which DMS can then use to fetch the consumer application name!

#niri

#niri


The media in this post is not displayed to visitors. To view it, please go to the original post.

Working on a screencast IPC for niri. The idea is to give info to desktop bars to be able to add a screencast indicator whenever something is recording the screen.

Got it hooked up for both PipeWire (obviously) and wlr-screencopy. For the latter there's no good way to tell if something is a screencast so I went with some heuristics.

Here's the icon working on the DMS bar, as well as a popup with the full available info I made for debugging. :blobcat:

#niri

#niri


The media in this post is not displayed to visitors. To view it, please go to the original post.

Merged another long time overdue niri PR: mouse cursor via metadata in PipeWire screencasts (lets you toggle Show Cursor on/off in OBS), and full mouse cursor support in window casts.

The cursor is visible only when the window is receiving mouse events—if you're moving the mouse on top of something else covering the target window, the cursor won't be (unintentionally) painted.

Thanks @abmantis for driving this, including debugging a memory bug in PW!

#niri


The media in this post is not displayed to visitors. To view it, please go to the original post.

niri can now include the mouse pointer on window screenshots, a feature that had several more edge cases than I thought before starting to work on it (and it's likely not the ones you think, those ones were easy)

#niri

#niri


Is there any good way of moving a process into a systemd StartTransientScope together with its children?

In niri we put spawned processes into scopes, so oomd and other stuff can work properly. Usually you do it by putting yourself into a scope, then exec-ing the target program. But that's a 7 ms toll on startup time, so in niri we spawn the program right away, and then put it into a scope. However, if the program forks fast enough, that child doesn't go into the scope..

#niri #linux #systemd


#niri


The media in this post is not displayed to visitors. To view it, please go to the original post.

i'm reviving the PR integrating Tracy GPU profiling into Smithay. Here are two test captures from niri: one for normal + screencast rendering, one for iGPU + dGPU monitor rendering

#niri

#niri


The media in this post is not displayed to visitors. To view it, please go to the original post.

biblically accurate window management

#niri

#niri


Finished the push-based rendering refactor, made a write-up here for the curious: github.com/YaLTeR/niri/pull/31…

It even ended up with a negative delta (+762 -780) which is always a W.

Btw I ran the comparison on my Eee PC and there the difference is even more extreme, like 8x faster rendering list construction (which is once again only a part of the total rendering time, and notably doesn't include actual rendering, but still nice).

#niri

#niri


The media in this post is not displayed to visitors. To view it, please go to the original post.

Experimenting with a restructure of the niri rendering code to uncurse it somewhat by getting rid of all complex impl Iterator chains and lifetimes, which also lets me remove some intermediate small Vecs. In essence, going from pull to push iteration.

I'm surprised that the result is consistently 2-3x faster than before. Wonder if it's the Vecs, or if inverting (massive) codegen'd iterators into a normal call stack passing a closure arg, providing the main benefit

#niri

#niri


The media in this post is not displayed to visitors. To view it, please go to the original post.

on niri-git, the nautilus rename popup now works properly with IMEs running

(and generally popups with text fields should work now)

#niri

#niri


The media in this post is not displayed to visitors. To view it, please go to the original post.

i added the pointer warping thing from blender to when you drag the view around in niri with the mouse

hf with this new way to pass time during boring meetings

(on a more serious note this helps when you need to scroll further than the edge of your monitor allows)

also unrelated: merged optional config includes earlier today

#niri

#niri


yuxqiu just improved the default GPU detection logic in Smithay, so niri-git now works out of the box on Asahi and Pinephone devices, without having to manually configure render-drm-device!

#niri

#niri


I've had one of those sessions today where I worked with a ton of random windows on a long workspace, while preparing slides for a uni scientific presentation. All kinds of various PDFs, file managers, InkScape, GIMP and so on.

Horizontal mouse headerbar drag to scroll the view was a lifesaver. Definitely a good choice adding this. Along with scrolling the view on DnD near the screen edge. Going through the overview, or always through the keyboard, would be very annoying.

#niri

#niri


funny how while working on alt-tab i discovered that mouse scrolling on top of the DMS bar switches workspaces, which completely replaced any need i had for alt-tab, so i ended up never using it

this DMS bar scrolling feature also removed one of my main usecases for the overview

and then the new horizontal window drag gesture removed my other main usecase for the overview, so now i'm opening the overview quite rarely too

(both have their uses; just curious to watch my own habits shift)

#niri

#niri


#niri


The media in this post is not displayed to visitors. To view it, please go to the original post.

Today I'm releasing niri v25.11 with long-awaited config includes, Alt-Tab, true maximize, custom modes, and a bunch of other improvements! :ablobcatbongo: :ablobcatbongo: Enjoy the release notes :)

github.com/YaLTeR/niri/release…

#niri #smithay #wayland #rust