#smithay — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #smithay, aggregated by home.social.
-
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.
-
I spent way too much time yesterday on figuring out how to draw a #wayland window to a texture and then render this texture onto a layer-shell.
Hint: The `FBO` is not unbound when the target is dropped and to actually render to the `EGLSurface` you have bind the framebuffer to 0.
But now I can draw windows and even apply shaders yay!
#smithay and #smithay_client_toolkit are awesome <3
-
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 :)
-
#MRMCD kindly agreed to host my talk this year!
https://talks.mrmcd.net/2025/talk/U87GK7/
It's nothing special, I'll just give an introduction to the #ECS #programming pattern.
Content warning: #Bevy, #Rust, #wayland, #smithay, lame jokes.
ECS might be popular in #games, but it has some other advantages. But you'll never know unless you listen to me :)
-
niri v25.08 is now released with a logo, xwayland-satellite integration, basic screen reader support, NVIDIA screencast flickering fix, window positions and sizes in IPC, and many other improvements! :ablobcatbongo:
Read the notes here: https://github.com/YaLTeR/niri/releases/tag/v25.08
now i need at least a month off from any release notes preparation 😴
-
After long 3 months of work, I'm glad to release niri v25.05 with the Overview, screenshot UI tablet and touch support, dynamic screencast target and windowed fullscreen, IPC pick-window and pick-color, window urgency, and lots of other things! :ablobcatbongo: :apartyblobcat:
Release notes prepared for your reading pleasure as always: https://github.com/YaLTeR/niri/releases/tag/v25.05
-
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]]
-
After a full day of writing release notes (god how'd it take so long 😫), niri v25.01 is out with Floating Windows and Working Layer-Shell Desktop Icons and Layer-Shell Screencast Blocking Out and so many more improvements! Yes, you read that right, we finally escaped zerover! I feel that niri is now ready to graduate from v0.1 :ablobcatbongo:
Read here and download when your distribution package updates: https://github.com/YaLTeR/niri/releases/tag/v25.01
-
Interactive window moving, laptop lid and tablet mode switch binds, mouse and touchpad scroll speed setting in today's niri v0.1.10 release!
https://github.com/YaLTeR/niri/releases/tag/v0.1.10
Also, niri-ipc is now on crates.io, but keep in mind that it will not be Rust-semver-stable: https://crates.io/crates/niri-ipc
-
After the Waybar maintainer speedran merging my niri modules and releasing, I would feel bad delaying any longer, so here's niri 0.1.9 :)
Event stream IPC for bars, better window resizing, properly named outputs, on-demand VRR, out-of-the-box fix for NVIDIA flickering, and other improvements!
-
Developing #X11 stuff from scratch these days is really frustrating with the state of documentation.
I spent the better part of a day to figure out, why #GTK (3 and 4) apps weren't reacting to changes in my custom XSettings implementation for #smithay / #COSMIC. (Qt was fine!)
Turns out, if the window holding the XSettings selection is the same window holding the window manager selection, the GDK backend will override the previously set PropertyNotify...
And I am not even sure, if I would consider this a bug, obviously the Spec doesn't say they can't be the same window, but I see how this is annoying to deal with on the toolkit-side of things.
Lesson learned, I guess, use separate windows for every selection you are holding. I just wish these kind of things where documented *somewhere*. :neocat_facepalm:
-
#COSMIC and #smithay can indeed work well with #Squeekboard :)
My patch fixes the focus problem, and now events go all like they should.
https://github.com/pop-os/cosmic-comp/pull/770
Let's see what the upstream thinks about this.
-
#COSMIC compositor is running #squeekboard :)
But not very well. The first letter goes through, and that's it.
This is where I come in. -
My Wayland compositor, niri, turns one today! :ablobcatrave:
Here's v0.1.8 with bind key repeat, screenshot UI pointer toggle, gradient color spaces, wlr screencopy v3 and output management, and lots of other improvements: https://github.com/YaLTeR/niri/releases/tag/v0.1.8
-
I'm experimenting. For some reason it's fullscreen even though I don't want it to always be fullscreen.
-
I decided against even making Plasmoids becaise I realized it would be too much for me to do while keeping the programs available to run on their own, so I'm going to use Smithay and CXX-Qt to make a compositor (will need layer-shell-qt also, but it's C++ so I can use CXX-Qt for it too.) See also:
https://codeberg.org/DrewNaylor/Retiled/pulls/315
#Retiled #programming #Rust #Smithay #rustlang #CXXQt #KDEPlasma
-
niri v0.1.7 is out with fractional scaling, window screencasts and many smaller improvements!
-
Over the past few weeks I've been working on fractional scaling for niri. A simple implementation took about a day, but to do it *properly* I had to refactor the entire layout code to work in floating-point.
The result is well worth it though. Borders, gaps and windows are always physical-pixel aligned, and not restricted to integer logical pixel positions. There's no blur or position-dependent +-1 px jank. Fractional-scale-aware clients remain crisp at any scale.
-
Niri 0.1.6 with interactive window resizing, rounded corners, named workspaces, mouse view scrolling, animation custom shaders, screen transition!
https://github.com/YaLTeR/niri/releases/tag/v0.1.6
Didn't realize quite how many release notes there would be this time; even had to use an extra level of headings. 😅
-
Another tricky feature, rounded corners! Took several days, but I believe I've got a pretty complete implementation.
You (manually) set the window corner radius and whether to force-clip the window. You can set radius per-corner to match GTK 3 apps. It works correctly with subsurfaces, blocked-out windows, transparency, gradient borders, resize and other animations.
Optimization-wise, opaque regions and even overlay plane unredirection work where possible!
-
All the animations, plus VRR, today in niri 0.1.5: https://github.com/YaLTeR/niri/releases/tag/v0.1.5
I also remade the demo video to showcase the animations and some of the newer features!
-
Amidst all the fires being put out, niri 0.1.4 which can block out windows from screencasts! https://github.com/YaLTeR/niri/releases/tag/v0.1.4
And also gamma control, focus follows mouse, warp mouse to focus, wheel and touchpad scroll bindings, xdp-gnome 46 support.
Also, every single config option is now documented on the wiki! Which took like an entire week of work (even though I was reusing a lot of my previously written docs in the config). Check it out here: https://github.com/YaLTeR/niri/wiki/Configuration:-Overview
-
Are there any good resources on building a #Smithay compositor out there?
-
Tagged niri v0.1.3: https://github.com/YaLTeR/niri/releases/tag/v0.1.3
This one has much improved touchpad gestures with inertia, springs, rubberbanding and everything else I copied from libadwaita, my primary source for things that feel good :blobmiou:
Also thanks @alice for helping and giving feedback on the gestures and for giving a try to the touch support!
-
The window opening animation is now live as part of niri v0.1.2: https://github.com/YaLTeR/niri/releases/tag/v0.1.2
I'm really looking forward to more animations, but wow they sure do need a lot of care to get right in all the edge cases.
Also, I added a way to programmatically invoke compositor actions, and turns out that's quite useful for making video demos!
-
Well, I'm happy to release the first stable version of niri, my scrollable-tiling compositor: https://github.com/YaLTeR/niri/releases/tag/v0.1.0
Very satisfied with the current state, even though there's plenty left to do. Took a lot of time and work but I've certainly learned a lot, and I'm glad to have contributed a bit to Smithay too!