Switching to Niri

2025-05-11

CW: Semi-technical, mostly a musing/rambling of my history with Hyprland, it's community and it's drama, followed by my technical experience with Niri. Feel free to ignore.


For as long as I have been using NixOS, I have also been running Hyprland. I'm not sure how to feel about it, truth be told, all of the flashy animations were pleasing to the eyes, and i enjoyed having it be configured exactly how I wanted it to, but when compared to my experience with i3 or bspwm, Hyprland felt .. pestering. Whenever I upgraded my system there was a decent chance of me having to also tinker with my Hyprland configuration a bit. There was also no official NVIDIA support, which kinda makes sense in theory? Nvidia is known for being poorly interoperable with wlroots and that is reason enough for them to not support it officially, but it was still annoying in that regard. I had trouble running my electron apps on the GPU for a solid year before the issue mysteriously went away. I could never tell which component was actually causing the problems.

Aside from that, the community definitely felt like.. it wasn't my type of crowd. The impression I got was that the Hyprland community stereotype is that of a gamer teen who prefers their computer guts to be riddled with RGB LEDs and anime cartoon ladies instead of .. well.. nothing. Aside from that, I am also well aware of the beef between Drew DeVault and Vaxry, the (main and only?) developer of Hyprland.

<opinion>
I honestly feel like it's pointless drama from both ends after having read both of their sides of the story, and the amount of it (repeated fedi posts and new developments over the course of a few months at least) is what led me to stop reading Drew's blog and fediverse posts. I wasn't reading Vaxry's blogs in the first place, aside from the responses to drew's posts. At some point the mature thing to would have been to do was to just acknowledge the disagreement and move on to the nicer things in life.
</opinion>

If you want to enjoy some beef stew, I'll just link the entire thing here, both sides of the story:


Drew's posts:
https://drewdevault.com/2023/09/17/Hyprland-toxicity.html
https://drewdevault.com/2024/04/09/2024-04-09-FDO-conduct-enforcement.html

Vaxry's posts:
https://blog.vaxry.net/articles/2023-hyprlandsCommunity
https://blog.vaxry.net/articles/2023-hyprlandCommunityChanges
https://blog.vaxry.net/articles/2023-inclusiveActivists
https://blog.vaxry.net/articles/2024-fdo-and-redhat
https://blog.vaxry.net/articles/2024-fdo-and-redhat2


The final straw that finally convinced me to begin looking for greener pastures was that Hyprland added a feature, right into the compositor, to pester it's users for patreon donations (commit(github)). Granted, it's easy to disable, but it is code that my CPU is executing that is asking me for money. No different than a javascript ad on my browser, in my opinion, and so, after a (in retrospect) very distasteful complaint email from me to vaxry, I began looking.

And even before I decided to move away from Hyprland, I kept seeing glimpses of scrolling window managers and they kept intriguing me. Initially I thought that the only one available was PaperWM, which was wholly reliant on GNOME, but a few days ago I came across Niri, a standalone, rust-based wayland compositor.

I was operating under the impression that implementing a wayland compositor from ground up was too difficult and that wlroots was the only common way for people to write their own semi-independant compositors, but I am glad that I was wrong. With the advent of aquamarine and now my discovery of an entire family of smithay / rust based wayland compositor, I'm glad to see a more diverse wayland ecosystem.

As for the compositor itself, I must say, I am finding usage of a scrolling compositor to be very intuitive. It's.. to me at least, just a better concept overall when put up against a tiling compositor. I didn't find it difficult to intuit, I found myself making full use of it within a day, with a configuration that I am writing from scratch, And I already have the compositor itself looking How I Want It To.

That being said, I feel like a horizontally scrolling compositor is not optimal for horizontal multi-monitor setups. I imagine that this experience would be even better with a single 21:9 ultrawide, or even two of them stacked on top of eachother.

Aside from that, the entire process of installation/configuration/troubleshooting is so much better than Hyprland's, whereas before I had to switch Hyprland sources multiple times if I was updating, niri just comes with a nice, semi-official, dedicated flake, which provides a home-manager module, which converts your nix-styled settings into a niri config, even providing full on error checking upon rebuilding.

On top of that, screencasting works perfectly, and the WM as a whole feels far more fluid and robust when compared to Hyprland.

I am missing a few niche features over what I had configured in Hyprland. Namely, I really liked having a static set of workspaces, since for me it was the perfect blend between having pre-defined, named workspace and dynamic workspaces. I.e. i would mentally assign an application or a workflow to a workspace by myself, but, from time to time I would also take advantage of the flexibility that not having any specific rules set for said workspace would bring.