The Future is Niri
132 points by eBPF
132 points by eBPF
I find amazing that so many people are discovering Niri right now (me too!). Last weekend I even took the time to write a short ArchWiki page about it. It’s not complete and I encourage people to add stuff to it.
The first interesting bit mentions xkb options. I appreciate that a lot, as an user of few extremely esoteric ones that luckily someone supports.
May I ask: how does using Alacritty with Niri work, given that Alacritty (last I checked) had some kind of strict one-window-only policy? They encourage using tmux to get multiple sessions etc, which I do. But for it to work in a reasonable way with Niri I’d want multiple windows. How does that work?
I don’t think that Alacritty has that problem anymore. I’ve never found a problem with opening multiple instances of Alacritty, one per window.
Niri has increased my battery life by about two hours compared to Sway.
Does anyone know the technical reasons for this? I would have expected wlroots-based compositors to be more power efficient as they had more time, usage and contributions to mature than Smithay-based ones.
I filed an issue against Sway because it constantly used CPU even when nothing was happening and was told it must be a driver issue and was dismissed (I have Intel on board graphics, the most mundane well supported Linux option possible).
When I used sway on a laptop, a major part of the battery drain for me was swaybar’s time display:
status_command while date +'%Y-%m-%d %X'; do sleep 1; done
This is part of the default configuration, and it essentially forces the CPU to never rest (it’s several times worse than e.g. setting KDE to display the time in seconds, because it has to execve() and load several dynamically-linked files every second.)
I also had similar problems with other Unix-philosophy-like WMs like bspwm. In general, the Unix-like model of composing external processes feels generally inefficient for battery life.
This was bad on i3 as well. A common fix was to increase the sleep timer or to use an alternative statusbar.
I think Niri is the first tiling WM that I’ve used that I could recommend to friends, simply because the worst thing that can happen is that you have to scroll, which is also the main feature.
In other tiling WMs that I’ve used, you quickly run out of space and get silly squashed windows, and almost immediately have to learn more things to be able to deal with it. In Niri you can scroll until you’re ready to learn more things, if you want to.
In a somewhat old ATP episode they mentioned that most people they know use macs with fullscreen windows that they scroll between (sort of mirroring how iOS multitasking works, you have full screen apps you can swipe between using the home bar), so I’d say scrolling is already fairly intuitive to people.
Yup, this is the workflow that I use on my MacBook! I leave all of my programs in full-screen, then use a combination of “scrolling” between workspaces and Alt+Tab.
This experience pretty closely mirrors mine. Having spent the last 6-7 years on dynamic tiling window managers (mostly qtile and hyrpland). But after trying niri for the last week, I’m 100% convinced that the workflow just makes way more sense for the way I use monitors and windows. With Hyprland I was constantly shuffling windows and workspaces around trying to keep everything compartmentalized.
I also was more likely to change workspaces to open a new window rather than crowd out whatever I was working on. Particularly since 98% of the time the only applications I use are a browser and terminal and I basically never want to Xmonad-style layout my browser into a tiny window.
Now I only need to get an ultrawide monitor to try Niri on…
My thoughts exactly…
Wow, this is exactly the reaction I kinda imagined when I saw paperwm.
Before doing the switch from awesome to paperwm I found Niri and decided that I’ll move directly to wayland+Niri instead. Though I kinda haven’t had the guts to leave all my X helper scripts behind and actually move to wayland yet…
I guess this is what I needed to actually seriously consider switching to wayland soon. Thanks!
I found paperwm first, and it just really didn’t work for me, leading to me ignoring niri for a fairly significant amount of time by association. This post gave me the nudge to actually try it out, and I’m very pleasantly surprised! Going to be switching to it fully for a while to really get a feel for it, and then decide if I’ll stay definitively.
Curious - what do you like about niri that PaperWM didn’t have – or PaperWM has that niri doesn’t, I guess.
Running smoothly! (+ decoration handling, scaling, shortcut management…) Using PaperWM felt like replacing my touchpad with a cheese grater comparatively (I’m typically a labwc user).
I’ve used both, and there are trade-offs.
With PaperWM, you get all the integration that Gnome provides, mainly in terms of managing hardware devices. You can provide all of this for Niri, and I have (originally for Sway, but it was trivial to bring my Sway configuration over to niri), but there’s no turnkey solution.
On the other hand, niri is much faster and smoother than PaperWM, and less buggy (because PaperWM is forced to keep up with Gnome Shell compatibility and interaction with other extensions). I also find that it handles the interaction between workspaces and multiple displays better than PaperWM.
Generally, I haven’t had many complaints with PaperWM (knocks on wood) or found it to be buggy. I do worry about the keeping up with GNOME – right now development with PaperWM seems active enough, but I can easily see a scenario where the developers move on and it stops working with newer versions of GNOME. If that day comes, I guess I’ll definitely be moving over to niri whether I want to or not.
Traditional tiling window managers have a side effect of forcing you to be as efficient as possible with your window layout. There is an additional cognitive load incentivizing you to optimize for the wrong thing:
I disagree with this, my tiling WM is forcing me about nothing, it’s just how you use it, or what problems you want to solve. My setup exactly takes away all cognitive load - one of the main problems with my current macOS setup, I need to think about window placement all the time.
That said, I’m planning to give niri an honest trial soon, not because I am fed up with any specific tiling WM, but I have a new machine that needs a setup anyway.
I disagree with this, my tiling WM is forcing me about nothing, it’s just how you use it, or what problems you want to solve.
As someone who 100% agrees with the author here (to the point where I finally gave up on tiling after about five years of using it), let me explain it differently: if you’re tiling, every new window you open forces you to make a decision about it. Whether that window is epehemeral or not, whether it belongs in this space or not, it showing up will make every other window in the space reflow, i.e. move around or change sizes. This is a core feature of tiling! So you end up doing things like the current top reply to your comment where you keep one full window per screen, or at most two, and if you accidentally open a new window even for a microsecond that’s going to thrash your layout. The moment I realized tiling was actively hurting me was when, upon reflection, I found out that I almost had muscle memory for opening a new window and making it full screen so my existing layout didn’t explode.
I think this problem is specific to dynamic tiling. It’s one of the reasons why I never managed to get along with i3 (or Sway). I got along with wmii to some degree back in the day. I don’t recall the details, I vaguely remember its stacking feature being a little less awkward than i3’s but I don’t remember exactly why; I do remember that it was equally annoying to switch among windows though (I routinely had to open like a dozen datasheets, and then I’d have to switch between them by patiently bringing each one into view).
Manual tiling has always been the way to go for me back when I used a tiling WM. Ratpoison (which I used), and @jcs’ own sdorfehs, trivially fix this problem: opening a new window never causes reflow, it always opens exactly where you want it (actually, it always open exactly where your eyes already are, because you’ve switched to that container), and you get instant full screen vs. tiling by just moving a window to its own workspace/back to its original workspace.
Or at least that’s how it used to work at some point, I’m not sure if this is still the case – I haven’t used a tiling WM in years, I have a large monitor and tiling WMs are super annoying (if I tile two windows side-by-side they’re too wide to read comfortably, and making one narrower makes the other one even wider; if I tile 3 or more, depending on what’s in them, at least one of them is now too narrow to be useful).
if I tile two windows side-by-side they’re too wide to read comfortably, and making one narrower makes the other one even wider; if I tile 3 or more, depending on what’s in them, at least one of them is now too narrow to be useful
This is exactly what Niri solves. Every window opens at its preferred width. Niri doesn’t unnecessarily insist on filling up your whole screen. With every new window, your screen fills up until the furthest to the left scrolls out of view.
Indeed, although (with the usual “to each his own” caveat) I honestly just… prefer the stacking solution here. I played with Niri a few weeks (or months?) ago and I can’t say I was a fan, because it just introduces the opposite problem – if I open three windows, one of them is either to narrow to be useful, or off-screen. If it’s off-screen, I have to scroll left/right to get to it, and the associated animation (which is kind of necessary for spatial cues) gets tiring pretty fast.
I liked ratpoison for a bunch of other reasons that go well with manual tiling though. E.g. window switching is extremely fast and works well with “local” muscle memory.
When I have to use X, I use notion (no not that one). It just Works and I can have a consistent layout.
I’ve been using Sway for a few years now, and I still miss Notion. I set each Sway region to tabbed, which gives a similar effect, but you have to do it manually after booting and keep at least one window in each region, which is slightly annoying. And sometimes I press the wrong key and the layout gets messed up in some confusing way.
Looking at the Notion site again, I see it links to volare, a fork of Sway aiming to make it more Notion like. Just trying it out now… looks promising!
I set each Sway region to tabbed, which gives a similar effect, but you have to do it manually after booting and keep at least one window in each region, which is slightly annoying.
You may be interested in the following config option: workspace_layout tabbed
. It makes every new container tabbed at creation.
I have Sway configured to always make containers tabbed, so there’s never reflow when I open a window.
I’m gonna give Niri a try though, seems neat.
every new window you open forces you
Ah you would be right if I didn’t have a very long list of all programs I generally open in a work day with a config on what screen they end up in. So in practice it’s just “a 2nd terminal popping up” usually and I don’t particularly care if it’s left or right or top or bottom of the other (although that is deterministic though and muscle memory is there to realign without thinking).
But hey, I’m not trying to convert anyone, merely sometimes suggesting people try it out at least once if they never have. It’s how I want it to work, not how everyone should :)
(Please not the difference of the absolute statement “tiling wms force you” vs “it doesn’t have to be that way if you configure it away)
I came here to reply to very same quote: I practically always keep 1 window per screen, full screen. No cognitive load involved here lol
This isn’t feasible for me since i have a lot of things open at once, and I run out of workspace keybinds. I also do like being able to see two/three things at once.
As someone who has been using tiling WMs for a long time, I also recommend a keybinding that lets you textcomplete a window.
Something like rofi -show window -auto-select
can really do wonders for navigating around. While it’s nice to have a keybinding to jump to any workspace, you can get really far just jumping to the windows themselves
one of the main problems with my current macOS setup, I need to think about window placement all the time.
There are some tiling managers for macos as well, yabai is my personal favorite currently!
I agree tiling managers have saved me from needing to care about window placement at all. I can just simply focus on coding. Which usually takes a max of 3 windows for me, all which can fit fairly well on my super wide monitors.
I bet there is a screen size difference for people here. Some may have less screen to work with. When using my 15” MBA I feel like the tiling manager isn’t as helpful as with a giant screen.
Interestingly while “coding” it’s less of a problem for me, unless I’m screensharing.
It’s copying stuff from slack or emails or JIRA tabs, that’s a lot more window switching.
i switched to niri last week, it is nearly perfect. I also been tiling for a long time and this finally feels like a huge improvement over i3 and every other tiling solution I ever used.
Main thing I would like is something like expose to get overview of all my windows
one neat thing about niri is that it uses KDL for config, which has been delightful. It reminds me of a json hcl hybrid:
foobar {
foo value
bar "not foo"
}
Is it possible to integrate this with Plasma?
There is Karousel which is like Niri, but for Plasma. Since it’s an extension, it doesn’t integrate perfectly, unfortunately.
I’ve been absolutely loving Karousel! I’ve found that libinput-gestures makes for an excellent pairing.
Karousel currently uses KWin’s window shade feature (X11 only) to implement window stacking, but the developer is rewriting that to not use window shading.
No, this cannot be done properly with extensions. Hopefully Plasma will support this natively in the future.
What do fans of (different kinds of) tiling window managers really like about them? I’m earnestly curious since I like my windows to float, pile/overlap somewhat, and be their own best sizes. Is it about putting all pixels to work? Keyboard finesse?
For me it’s an accessibility thing. It’s the best way I have found to use a desktop computer with keyboard only.
I turn off tabs in all programs that have them, so that I can navigate all windows in the same way, using at most one key per hand and keyboard-half.
I do have a nice pointing device for emergencies (drawing memes in Krita or so) but I can’t use it regularly.
There’s a big difference between tools that are merely possible to use with a keyboard, and tools that are easy to use with a keyboard, but I think it’s less obvious to users that can fall back to pointing.
It’s hard to put into words but I’ll try. This is strictly about a work setup with 3 screens, 2 big important ones and 1 smaller laptop screen (on the right). This also assumes xmonad or mimicking its workspace switching in i3.
So I usually have my browser up on the left screen (sometimes 50:50 split with another browser or a shell or whatever), my IDE up on the middle one and then emails or slack or whatever on the right one (all usually in fullscreen).
Now let’s say I share my screen for pairing, then I also want my partner/team visible, so I need Video+IDE+Slack - instead of fumbling around I’d just press win-5 or whatever on the left one and have that up there. Pressing win-5 on the middle one now will switch the IDE workspace with the video one (because my cam is on the right, so I’m more looking into the cam), etc.pp
But a key point is that I am sending all specific apps to their one fixed workspace on open (something like 1=shell,2=ide,3=browser,4=email,….) so I never have to alt-tab to find anything because I just know which app I will get, and I can still temporarily move e.g. the video window to the browser workspace for a split view (or alt-tab in a single workspace, between slack and emails)
So yes, it might sound nitpicky but it’s like laying out stuff on a workbench. I don’t think about it anymore and I don’t even need to look there. Just push the mouse somewhere onto that screen and press an easy key combo and I have everything where I want it, and still dynamically move it around. If I have a second browser window open I can either put that on workspace 3 (so I alt-tab between exactly the 2 open tabs) or put it next to the other one, OR I put it on one of my undefined workspaces (e.g. 8) and have that up somewhere.
If you are a heavy window overlapper then this might not make a ton of sense, from my experience. But even on non-tiling WMs I often do 1:1 or 1:1:1 or 1:1:1:1 splits but then I have to alt-tab a lot. But yes, it’s also very much about keyboard shortcuts, which you can somewhat recreate in e.g. hammerspoon but imho not as nicely.
I like the workbench analogy. I use i3 in the same way: one workspace for terminals with various stuff (email, IRC, current project, maybe a grep/git/logtail/whatever), one with a browser window on the company chat, one with a private chat, one with a “main browser window” for everything else, one with my editor and occasionally I’ll spawn more workspaces for one-off tasks or other things I need open all the time. Right now I’m typing this, I have 7 workspaces active and I know exactly which workspace contains which windows. “A place for everything and everything in its place”, basically.
About ten years before I learned about the existence of tiling window managers, I already knew the bits of window management that I hated:
The first time I encountered a tiling window manager, I instantly saw that it solved these problems, switched, and never looked back.
So I guess that I have the reverse question: what do people really like about floating window managers? Do the annoyances I listed above not bother you or are you getting some benefit from the floating layout that’s worth the price?
Not to steer us off topic, but since you asked: I must not have much frustration about rearranging windows, because I get satisfaction from arranging them.
I think you can avoid needed information being unduly covered by making windows as small as they can reasonably be. It’s not necessary to ensure they never overlap anywhere. For example, my TextEdit windows are about the size of my phone in portrait, which is about 5% of the monitor’s physical area.
I generally use one 27” screen. When idle, I have several stacks of windows. Browsers on the left, terminals in the lower right corner, that kind of thing. I keep each stack neat in sort of a cascade arrangement. With an AppleScript on a key shortcut I can make a window my favorite size, for example, I can reset a terminal to 80x25 or a browser to 1024x768.
The center of the screen is available for a main app like an IDE. Such a window will overlap the side stacks, but won’t cover them.
For a task, I’ll set up my workspace in a second or two, mainly by bringing forward the specific open windows I’ll need. Being in separate stacks, they already don’t overlap. I may hide unrelated apps, too. And then I’ll launch whatever main app I need in the center, or maybe move a browser window there, or just enlarge it from the corner and reset its size later.
During the task, if a center app is frontmost and I need a side window, they’re only half-covered by it anyway, so I have a huge click target to bring that other window to the front. Fitts’s Law is my friend. Command-tab feels fast but is imprecise; I probably don’t want all windows of an app. I’d usually rather click the specific window. And if a window is covered, that’s what exposé is for. It’s on my mouse’s thumb button.
It’s not like I never get caught on this and I do need a unique setup from time to time. On my laptop screen I run a different scheme just due to real estate. But for the most part I have my stuff laid out neatly, or I have in mind a neat arrangement to return to, and I think a mouse is just good at this. (Trackpads are comparatively clumsy.)
For me it’s a mix of those (both what was already mentioned and what you suggested):
I would guess:
Keyboard finesse mostly follows from that IMO.
There is a lot of stagnation in the Linux tiling window manager space these days when it comes to improving and iterating on actual workflows rather than aesthetics, and backwards compatibility continues to be a thorn in everyone’s side.
I’m more active in the Windows twm scene, and I’m seeing (and have personally worked on) attempts to integrate scrolling workflows into “traditional” twms - from my experience I don’t think this is an either/or situation, and the two approaches can co-exist in the same wm fairly well.
I’d be interested in hearing more about this. I recently switched from Sway to Niri on my home machines, but my work is a Windows shop. Here I use PowerToys Fancy Zones, and it’s okay, but I’d like to have a proper tiling WM.
I am a little biased since I develop it, but I recommend checking out komorebi. You can get a working setup in less than 5 minutes on a fresh machine, and there is a big community capable of helping you get (close to) the workflow you’re looking for.
I’m currently on sway, the way I work is - I have 10 workspaces, workspace 1 shows telegram, slack and matrix; workspace 2 has just a browser; workspace 3 has all the terminals; workspace 4 has just emacs; workspaces 5 to 9 are scratchpads, I don’t keep anything long running in them, I just use them when I need more space for a one-off thing; workspace 10 is for music/media
Right now I can switch to things directly because they are always at the same workplace. Could something like this be replicated with niri? I played with it for a few minutes but found myself getting a bit lost - my keybinds didn’t land me on the things I hoped they would due do the dynamic nature of workspaces
To ask the same question in a different way, how do you prevent windows from getting lost, if a window can be on a workspace, but off-screen?
OK this finally convinced me to kick my decade long i3 habit and try niri. I hate switching to new stuff like this, the config etc gives me a headache. But the demo was very persuasive.
It’s really, really good! I realise now how much I switch to new workspaces just to avoid squishing whatever window I’m working in.
One thing I’d really love is a minimap of some sort. Even if it’s just a horizontal representation of what’s open that can fit into waybar. I can see myself ‘losing’ windows quite easily.
I should try Niri again. I guess, theoretically, I could always just write a Niri-like wm for the new river window management protocol coming out some time this year. I tried Niri briefly but I’ve just gotten used to not using a bar with river and in the brief amount of time I tried that on Niri I couldn’t find windows a lot.
wanted to try it and my experience is the usual wayland one:
I start it, it shows me a screen with a lot of shortcuts
almost none of the displayed shortcuts work because I have an azerty keyboard - I mentally switch to qwerty, open a terminal - doesn’t work as it’s hardcoded for alacritty which the niri package did not install - and it does not respect TERMINAL.
I switch to another tty, pkill niri, install alacritty
I reopen it, go and edit the config now that I at least have some tool to work with ; apparently it has its own custom configuration for keyboard layouts? no clue how I can do my “setxkbmap -model pc105 -layout fr -variant oss_latin9”. But I set it to “fr” which at least gets the basics right.
Now some keyboard shortcuts that worked in qwerty mode (e.g. super+shift+/) don’t work anymore whether when doing the right key combination in azerty or qwerty
I try to launch google-chrome, apparently in 2025 it still requires flags to start on wayland and I don’t remember which and its man page does not mention wayland at all
I try some apps I use but they all fail with “failed to open display” - I guess it doesn’t launch Xwayland ? Despite it being installed
yay -R niri
Like, all this was entirely solved in the X11 world, I can try any random new WM and key input will work as expected because I have the correct setxkbmap
configuration in my .xinitrc. Why is it so hard to have the same in Wayland?
niri doesn’t ship with Xwayland integration, but it’s very easy to set up xwayland-satellite with it for all X11 apps to work perfectly
I’m also on an azerty keyboard, I remapped the annoying shortcuts and since then I have no complaints
apparently it has its own custom configuration for keyboard layouts?
It uses the exact same way of configuring keyboard layouts as every other Wayland compositor. Unfortunately, there’s no standard place to store this configuration, so every Wayland compositor makes it part of its own config. But all the options are the standard xkeyboard-config
options. You should be able to specify variant "oss_latin9"
in Niri.
Now some keyboard shortcuts that worked in qwerty mode (e.g. super+shift+/) don’t work anymore whether when doing the right key combination in azerty or qwerty
I figured out after a little bit that what you need to do is list the base key. So e.g. on my keyboard /
is shift+7
, that’s what I have to write, not /
.
I try some apps I use but they all fail with “failed to open display” - I guess it doesn’t launch Xwayland ?
It relies on xwayland-satellite
, which needs to be running. I saw that they’re gonna make Niri auto-launch it in a future version.
so every Wayland compositor makes it part of its own config.
that’s exactly what I call “its own custom configuration”, there isn’t one place where I can put my keyboard layout and every compositor will use it. makes me regret the windows registry.
I love standardized computing environments that don’t break and don’t change substantially for years. Still I hope this gets copied into a certain GUI I like that hasn’t changed much in ~25 years.
This does seem interesting – however, this isn’t anything new as a concept.
It’s been around on X11 for years as virtual desktop support. What makes this “interesting” is how applications are arranged.
Now, under Wayland, this approach is easy as there’s fewer restrictions around how applications are sized. I hope this changes…
Since when did X11 virtual desktops extend infinitely? As far as I remember every virtual desktop implementation in X11 WMs were just separate workspaces you could switch between.
The old twm window manager has a big canvas virtual desktop instead of little boxes. Fvwm can be configured either way https://www.fvwm.org/Man/fvwm3/#_the_virtual_desktop
I would argue though that it really depends on what your workflow looks like, if it is by any chance mostly terminal emulators and a few actual “graphical programs”, then the i3/sway workflow is very well optimized for that. It always seemed to me that things like “drag-and-drop” are never going to be well supported because you won’t use them - specifically in the case of text: highlight and paste (middle mouse button/Shift + Insert) works since the days of X11.
I think that i3/Sway actually fail at the “mostly terminal” workflow you’re describing too. When working on a medium-large Rust project, I’d have one terminal open (half-width) for code, one for build/run/debug log, one for the application output/testing, one for docs/man pages, and a few more for whatever else I need it for. With that many windows, it was hard to manage them all in Sway, as I was constantly switching between fullscreen and nonfullscreened terminals just to get some breathing room when reading logs or editing code. Terminal emulators need space too, and having any more than a handful open in one “workspace” is where Niri does fantastically well: I don’t need to edit code when looking at logs, and so on. This kind of workflow would take up an additional workspace on Sway, and then I’d have to spill into unergonomic workspace 11-20 shortcuts or close other apps.
Would love to try this but on macOS so far we only get a Hammerspoon script.
I’ve been using AeroSpace for some time now and enjoying it. Niri is new to me and has me thinking of ways I can possibly get AeroSpace to behave like it. But I think I will spend some time with Niri on Linux first to get a feel for it.
I actually use Hammerspoon with it, for (among many other things non-WM) some hotkeys for new terminal, browser, note, editor, etc.
Aerospace is too flaky for me and PaperSpoon is remarkably solid.
The main job I need a WM is to not overlap windows. The number of times where I have two windows on my laptop screen is relatively small so that use case (tiling) isn’t even that interesting.
Somehow niri is a slightly better experience than sway on nvidia drivers. By now most issues have been resolved in both, but xwayland remains a flickering mess under sway. Xwayland-satellite just works better.
I absolutely love Niri but I have some weird font rendering issues in xwayland satellite that I cannot seem to solve where everything is just super blurry
This post convinced me to try niri. I’ve just installed it, and right away, I’ve found the default config experience to be really nice. It’s very accessible. When I run into a problem, I find that the wiki contains workarounds for it! Huge fan.
I gave Niri a try for a few hours. I didn’t finish all the customizations I would’ve liked, but I don’t think I would’ve liked it even if I had.
Your comment about searching for something and it being in the last place you look, is exactly how I felt with Niri once I had more than say 6 open Windows in a workspace. And I found it frustrating that it’s impossible to open a new window without moving all the other windows. I found myself manually shuffling windows around every time I opened one, or going to separate workspaces to avoid the issue.
I’m a bit disappointed, because I’ve had a lot of technical issues with Sway and Niri seems great on that front, and it has neat features. Maybe I’ll take a hatchet to Niri’s code and make it work like Sway so I can get a setup I can live with on a better technical foundation.
I use Niri and I wholeheartedly agree that Niri is doing much better job technically than the clunky quirky C code in wlroots and Sway. It’s also a nicer user experience overall. Niri is only getting better by the day, leaving stagnating Sway C code in the dust.
Still, I somewhat miss the UX of “tabbed/stacked layouts with nested containers, the least ergonomic Band-Aid™ for the space issue I’ve ever seen” and I don’t agree that containers are a band-aid, even though I agree that they bring their own cognitive load.
On Sway, I often had eleven workspaces open.
added shortcuts to workspaces 11-20
On Sway I was never actually using more than five workspaces. A laptop screen + a big 4k screen + tabbed containers were actually a solution to the proliferation of workspaces: I kept a small number of workspaces with an arbitrary number of temporary windows in a tabbed container for a task that I could manipulate as one unit (closing, moving to another workspace, etc). I had to adjust to avoid multiplying windows in a Niri workspace, because I quickly lose track of invisible windows beyond the edges of screen (and Waybar has not been cooperative to display icons only from the current workspace), while on Sway I could see window decorations and titles for every top-level window/container in the workspace at the same time.
Another little annoyance is that I like that Sway workspaces have their own global namespace. I’m used to Sway workspaces 1 and 3 living on the laptop screen, 2 (and rarely 4) on my external monitor by default. When I unplug the external monitor, the workspace 2 (and maybe 4) just migrates to the laptop screen temporarily without changing the numbers, while on Niri workspaces 1 and 2 from the external monitor become something like 4 and 5 on the laptop screen.
Another feature that I’m waiting for is to be able to bind gestures to actions (swiping a workspace to another monitor can be nice).
Still, Niri is just awesome overall, I use it and I highly recommend it.
I’m gonna give Niri a try. Maybe it’ll even fix the bad perf and crashes I’ve had under Sway.
I agree on tabs. I used to have over 20 Sway workspaces, all with tabs. Recently Firefox has started having trouble when I have over 100 windows open, so I’ve had to cut back, and only have 9 workspaces, but I still have lots of tabs and I feel like they make it very quick and easy to find what I’m looking for. But I navigate by mouse. Whenever I happen to need to use the keyboard to navigate my sea of tabs inside tabs, it sucks. Maybe @eBPF always uses keyboard navigation and that’s why they dislike using tabs?
Maybe I’ll implement tabs for Niri if I miss them :laughing:
Edit: wait, Niri already has, I just discovered while trying to get started. Though they’re opposite to what I was envisioning. Niri tabs stack windows inside a single spot in the horizontal infinite scroll, while what I was imagining was a each tab being a container for a separate horizontal workspace.
Yes, it has windows stacked in columns, like in Xmonad.
Woah, actually there’s something new in https://github.com/YaLTeR/niri/issues/933, just a few days after the 25-01 release.
That new thing is what I was referring to :)
The stacking seems only marginally useful to me.
Another little annoyance is that I like that Sway workspaces have their own global namespace. I’m used to Sway workspaces 1 and 3 living on the laptop screen, 2 (and rarely 4) on my external monitor by default. When I unplug the external monitor, the workspace 2 (and maybe 4) just migrates to the laptop screen temporarily without changing the numbers, while on Niri workspaces 1 and 2 from the external monitor become something like 4 and 5 on the laptop screen.
This is the only thing from Sway that I particularly miss on Niri. It makes sense given Niri’s Gnome-like dynamic workspaces, but I like switching between monitors by switching workspace, rather than having a separate system for it.
Thank you, this finally gave me the kick to migrate all my shortcuts/necessary config from sway to niri and it’s great to see how quickly everything worked out. So glad I’ll finally be able to share windows.
Where is the Niri for X11
Just tried, instantly sold! Also coming from years of tiling WMs.
I’m totally happy with XFCE, and I’m sad about how happy I am because I’ve got no incentive to have fun by playing with alternatives. Anyway, for anyone who wants to become as happy with a non-tiling WM as I am, the trick is to use jumpapp or something similar plus your favourite key-remapper to assign keys to jump to apps without having to think about where their windows are.
I wish something like this (at least, that’s still maintained) existed for X11
I ran Niri for a while and liked it (especially the per-window sharing) but it only supports sideways tiling and that doesn’t work well with this LG Dual-Up. The windows would end up being awkwardly long and skinny. I’m hopeful it’ll be addressed as part of this issue.