Slightly off topic: Does anyone know a window manager where you can map virtual desktops to real monitors? E.g. When I'm on the move I cycle through my virtual desktops on my laptop screen, but when connecting a monitor I want to cycle between virtual desktops independently on both screens.
I recently switched to niri after bouncing off it about a year ago, and this time it stuck.
One thing I learned in the process was that the custom wayland desktop world has the concept of a "desktop shell," which provides most or all of the additional components you might want on top of your compositor, rather than having to separately install a top bar, manage suspend/hibernate, figure out notifications, etc. You can of course still do all of that, but you can also just install niri and something like the "dank linux" shell[0] and be off to the races. I first discovered this via awesome-niri[1].
The combination of niri and the dank linux shell means that the extent of my custom NixOS configuration for the two is entirely limited to keybindings and some custom window rules for zoom.
Niri is so good. I've switched to using it about 5 months ago and it was legit the best computing decision I can remember making in recent history to move away from Windows.
I have a huge amount of gratitude towards the author of niri.
My dotfiles have always included an install script for setting everything up around command line tools, theme switching and more but it fully supports niri now too on Arch based distros https://github.com/nickjj/dotfiles in case anyone is shopping around for a new desktop environment and wants to get going quickly. I run it on both my main desktop and a travel laptop.
Same². I started to regret having an ultrawide, until I discovered that it was made for Niri. I never loved my screen and linux as much as I do since Niri.
Yeah it is a dream on ultrawides. I was able to get a decent custom config with Qtile, but Niri is so much more natural. Being able to hit mod+c and center the current window is just so perfect on the ultrawide.
I use mangowm on the wl-only branch(which is based on wlroots 0.20). It uses a lot less resources, has more layouts and I have fewer problems with it. Although niri seems to have more eye candy. It's definitely worth giving a try. If you want HDR, you have to wait though.
Niri introduced scroll-based window management to me and it instantly clicked. I'm very happy to see a full-on Niri per-workspace emulation mode in OmniWM[1] for the Mac, recently and thankfully made compatible with Sequoia. It immediately became my main window manager.
I’ve gotten so used to the tiling WM workflow of quick-switching between a bunch of different dedicated fullscreen workspaces and managing windows with pure keyboard. Each workspace typically has a single app, or terminal with tmux, but occasionally I’ll split two apps side by side.
Would love to hear the perspective of anyone who switched from a similar workflow to Niri. How does the mental model shift?
I switched from KDE with almost what you mentioned: Workspace 1 had a fullscreen terminal with zellij, Workspace 2 had a browser, workspace 3 had two chat apps open and that was it. Bindings to switch between those.
I switched to niri because it was different and more lightweight than a full plasma setup at first, but now adapted my workflow a bit.
Most of the time, the individual windows I have are screen-sized still, similarly organized: 1 has development, 2 has browser(s) and occasionally my email reader, 3 has my chat apps.
I open new terminal windows more frequently for just firing a few commands or starting some long-running thing that I need to look at from time to time. With KDE, I had these windows in the background, now I have them side-by-side on "1". "Alt-Tab"ing between them in retrospective feels clunky now compared to Super-hjkl'ing through the windows... YMMV of course, but I think my workflow got "lighter" because of that, no more "windows over eachother" but rather "next to eachother" ... gives a feeling of lightness to me.
I switched to Niri at the end of last year after over a decade on i3.[1] Having horizontal scroll unbounded by my monitor size and workspace count unbound by the number of shortcut keys I have configured has been very freeing, and the graphical stuff is nice too.
My only remaining pain-point is that its X compatibility layer, xwayland-satellite, does not yet support drag and drop between X and Wayland programs.[2]
If you are on a Mac, check out OmniWM, which has a Niri layout, in addition to one that's more like Hyprland. It has made my work on MacOS much more pleasant.
I'm sorry, but they have the worst demo video I have seen in my life. Nobody will want to try their software after watching that video. If you watch it, you will probably want to uninstall it, even if you're already a user.
I'm on hyprland (which also has a scrolling layout). How do you guys navigate between your workspaces? I'm accomodated to super+<num>, which jumps to workspace #<num> with a mostly fixed purpose. If I opened something ad-hoc, I usually know where I placed it. I found it difficult to operate in a setting which more resembles the state of my desk (if it weren't random access).
Exactly as you do.
The thing that's different at first is that workspaces are organized vertically rather than horizontally, but I for one adapted to that really quick (coming from KDE).
A few releases back when niri got "proper" Alt-Tab behavior like one expects from more mainline WMs made it pretty much perfect for me. Could not dream of wanting anything more than what it already has.
The only remaining feature I would like is focus-follows-mouse but only for outputs, so that if I've moved my mouse over onto a second monitor, the focus moves to that output.
There are a few discussions around this, so I'm hopeful to see it implemented at some point:
This sounds very interesting. I'm currently in the middle of revisiting my desktop setup and interaction style. Landed on Qtile/Wayland but now I'm starting to notice lag.
> Every monitor has its own separate window strip. Windows can never "overflow" onto an adjacent monitor
I'm someone who was very content with the constraint of a laptop (one single screen, generally running one maximized window per workspace and switching with F-keys), but has never really become comfortable with multi-monitors. Can anyone explain why window managers always default to treating individual monitors as completely separate entities rather than one larger screen that works together? Like I would have thought the default here would be to have two monitors operate on the same horizontally-scrolling set of windows. Either tied together, or as independent viewports. But everybody always seems to reach towards treating each monitor as having disjoint windows. Which I guess I can get used to, it just seems odd?
Slightly off topic: Does anyone know a window manager where you can map virtual desktops to real monitors? E.g. When I'm on the move I cycle through my virtual desktops on my laptop screen, but when connecting a monitor I want to cycle between virtual desktops independently on both screens.
I recently switched to niri after bouncing off it about a year ago, and this time it stuck.
One thing I learned in the process was that the custom wayland desktop world has the concept of a "desktop shell," which provides most or all of the additional components you might want on top of your compositor, rather than having to separately install a top bar, manage suspend/hibernate, figure out notifications, etc. You can of course still do all of that, but you can also just install niri and something like the "dank linux" shell[0] and be off to the races. I first discovered this via awesome-niri[1].
The combination of niri and the dank linux shell means that the extent of my custom NixOS configuration for the two is entirely limited to keybindings and some custom window rules for zoom.
[0]: https://danklinux.com/
[1]: https://github.com/niri-wm/awesome-niri
Niri is so good. I've switched to using it about 5 months ago and it was legit the best computing decision I can remember making in recent history to move away from Windows.
I have a huge amount of gratitude towards the author of niri.
My dotfiles have always included an install script for setting everything up around command line tools, theme switching and more but it fully supports niri now too on Arch based distros https://github.com/nickjj/dotfiles in case anyone is shopping around for a new desktop environment and wants to get going quickly. I run it on both my main desktop and a travel laptop.
Same. I also find Niri paired with an ultrawide curved monitor to be particularly good.
Same². I started to regret having an ultrawide, until I discovered that it was made for Niri. I never loved my screen and linux as much as I do since Niri.
Yeah it is a dream on ultrawides. I was able to get a decent custom config with Qtile, but Niri is so much more natural. Being able to hit mod+c and center the current window is just so perfect on the ultrawide.
+1, ultrawide curved monitor user, used to be on sway but the experience of niri is next level.
I use mangowm on the wl-only branch(which is based on wlroots 0.20). It uses a lot less resources, has more layouts and I have fewer problems with it. Although niri seems to have more eye candy. It's definitely worth giving a try. If you want HDR, you have to wait though.
https://github.com/mangowm/mango
Niri introduced scroll-based window management to me and it instantly clicked. I'm very happy to see a full-on Niri per-workspace emulation mode in OmniWM[1] for the Mac, recently and thankfully made compatible with Sequoia. It immediately became my main window manager.
[1] https://github.com/BarutSRB/OmniWM
I’ve gotten so used to the tiling WM workflow of quick-switching between a bunch of different dedicated fullscreen workspaces and managing windows with pure keyboard. Each workspace typically has a single app, or terminal with tmux, but occasionally I’ll split two apps side by side.
Would love to hear the perspective of anyone who switched from a similar workflow to Niri. How does the mental model shift?
I switched from KDE with almost what you mentioned: Workspace 1 had a fullscreen terminal with zellij, Workspace 2 had a browser, workspace 3 had two chat apps open and that was it. Bindings to switch between those. I switched to niri because it was different and more lightweight than a full plasma setup at first, but now adapted my workflow a bit. Most of the time, the individual windows I have are screen-sized still, similarly organized: 1 has development, 2 has browser(s) and occasionally my email reader, 3 has my chat apps. I open new terminal windows more frequently for just firing a few commands or starting some long-running thing that I need to look at from time to time. With KDE, I had these windows in the background, now I have them side-by-side on "1". "Alt-Tab"ing between them in retrospective feels clunky now compared to Super-hjkl'ing through the windows... YMMV of course, but I think my workflow got "lighter" because of that, no more "windows over eachother" but rather "next to eachother" ... gives a feeling of lightness to me.
i create 4 fixed workspaces per monitor in the config, and use it that way
I switched to Niri at the end of last year after over a decade on i3.[1] Having horizontal scroll unbounded by my monitor size and workspace count unbound by the number of shortcut keys I have configured has been very freeing, and the graphical stuff is nice too.
My only remaining pain-point is that its X compatibility layer, xwayland-satellite, does not yet support drag and drop between X and Wayland programs.[2]
[1]: https://davidyat.es/2026/01/28/niri/
[2]: https://github.com/Supreeeme/xwayland-satellite/issues/133
If you are on a Mac, check out OmniWM, which has a Niri layout, in addition to one that's more like Hyprland. It has made my work on MacOS much more pleasant.
https://github.com/BarutSRB/OmniWM
I posted about it a bit ago when I just started using it, and it's been really great. Highly recommended.
I'm sorry, but they have the worst demo video I have seen in my life. Nobody will want to try their software after watching that video. If you watch it, you will probably want to uninstall it, even if you're already a user.
I'm on hyprland (which also has a scrolling layout). How do you guys navigate between your workspaces? I'm accomodated to super+<num>, which jumps to workspace #<num> with a mostly fixed purpose. If I opened something ad-hoc, I usually know where I placed it. I found it difficult to operate in a setting which more resembles the state of my desk (if it weren't random access).
Exactly as you do. The thing that's different at first is that workspaces are organized vertically rather than horizontally, but I for one adapted to that really quick (coming from KDE).
A few releases back when niri got "proper" Alt-Tab behavior like one expects from more mainline WMs made it pretty much perfect for me. Could not dream of wanting anything more than what it already has.
The only remaining feature I would like is focus-follows-mouse but only for outputs, so that if I've moved my mouse over onto a second monitor, the focus moves to that output.
There are a few discussions around this, so I'm hopeful to see it implemented at some point:
- https://github.com/niri-wm/niri/discussions/1318
- https://github.com/niri-wm/niri/discussions/378
- https://github.com/niri-wm/niri/discussions/491
This sounds very interesting. I'm currently in the middle of revisiting my desktop setup and interaction style. Landed on Qtile/Wayland but now I'm starting to notice lag.
> Every monitor has its own separate window strip. Windows can never "overflow" onto an adjacent monitor
I'm someone who was very content with the constraint of a laptop (one single screen, generally running one maximized window per workspace and switching with F-keys), but has never really become comfortable with multi-monitors. Can anyone explain why window managers always default to treating individual monitors as completely separate entities rather than one larger screen that works together? Like I would have thought the default here would be to have two monitors operate on the same horizontally-scrolling set of windows. Either tied together, or as independent viewports. But everybody always seems to reach towards treating each monitor as having disjoint windows. Which I guess I can get used to, it just seems odd?